thirdparty/google_appengine/lib/django/tests/modeltests/save_delete_hooks/models.py
changeset 2866 a04b1e4126c4
parent 2864 2e0b0af889be
child 2868 9f7f269383f7
equal deleted inserted replaced
2864:2e0b0af889be 2866:a04b1e4126c4
     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 class Person(models.Model):
       
    11     first_name = models.CharField(maxlength=20)
       
    12     last_name = models.CharField(maxlength=20)
       
    13 
       
    14     def __str__(self):
       
    15         return "%s %s" % (self.first_name, self.last_name)
       
    16 
       
    17     def save(self):
       
    18         print "Before save"
       
    19         super(Person, self).save() # Call the "real" save() method
       
    20         print "After save"
       
    21 
       
    22     def delete(self):
       
    23         print "Before deletion"
       
    24         super(Person, self).delete() # Call the "real" delete() method
       
    25         print "After deletion"
       
    26 
       
    27 __test__ = {'API_TESTS':"""
       
    28 >>> p1 = Person(first_name='John', last_name='Smith')
       
    29 >>> p1.save()
       
    30 Before save
       
    31 After save
       
    32 
       
    33 >>> Person.objects.all()
       
    34 [<Person: John Smith>]
       
    35 
       
    36 >>> p1.delete()
       
    37 Before deletion
       
    38 After deletion
       
    39 
       
    40 >>> Person.objects.all()
       
    41 []
       
    42 """}