thirdparty/google_appengine/lib/django/tests/modeltests/save_delete_hooks/models.py
changeset 2878 cf4b80992451
parent 2871 e440e94a874b
parent 2877 8bbdc95f87f8
child 2879 cb0f9b4646aa
equal deleted inserted replaced
2871:e440e94a874b 2878:cf4b80992451
     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 """}