parts/django/tests/modeltests/save_delete_hooks/models.py
changeset 69 c6bca38c1cbf
equal deleted inserted replaced
68:5ff1fc726848 69:c6bca38c1cbf
       
     1 """
       
     2 13. Adding hooks before/after saving and deleting
       
     3 
       
     4 To execute arbitrary code around ``save()`` and ``delete()``, just subclass
       
     5 the methods.
       
     6 """
       
     7 
       
     8 from django.db import models
       
     9 
       
    10 
       
    11 class Person(models.Model):
       
    12     first_name = models.CharField(max_length=20)
       
    13     last_name = models.CharField(max_length=20)
       
    14 
       
    15     def __init__(self, *args, **kwargs):
       
    16         super(Person, self).__init__(*args, **kwargs)
       
    17         self.data = []
       
    18 
       
    19     def __unicode__(self):
       
    20         return u"%s %s" % (self.first_name, self.last_name)
       
    21 
       
    22     def save(self, *args, **kwargs):
       
    23         self.data.append("Before save")
       
    24          # Call the "real" save() method
       
    25         super(Person, self).save(*args, **kwargs)
       
    26         self.data.append("After save")
       
    27 
       
    28     def delete(self):
       
    29         self.data.append("Before deletion")
       
    30         # Call the "real" delete() method
       
    31         super(Person, self).delete()
       
    32         self.data.append("After deletion")