Added 'Overriding default model methods' section to model-api.txt
git-svn-id: http://code.djangoproject.com/svn/django/trunk@2955 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
be57a7fd1a
commit
0fc2a2c1a8
|
@ -345,7 +345,7 @@ This is roughly equivalent to::
|
|||
|
||||
Entry.objects.order_by('headline')[0:1].get()
|
||||
|
||||
Note, however, that the first of these will raise ``IndexError`` while the
|
||||
Note, however, that the first of these will raise ``IndexError`` while the
|
||||
second will raise ``DoesNotExist`` if no objects match the given criteria.
|
||||
|
||||
QuerySet methods that return new QuerySets
|
||||
|
|
|
@ -1599,6 +1599,39 @@ API. See `Other lookup options`_.
|
|||
.. _Python DB-API: http://www.python.org/peps/pep-0249.html
|
||||
.. _Other lookup options: http://www.djangoproject.com/documentation/db_api/#extra-params-select-where-tables
|
||||
|
||||
Overriding default model methods
|
||||
--------------------------------
|
||||
|
||||
As explained in the `database API docs`_, each model gets a few methods
|
||||
automatically -- most notably, ``save()`` and ``delete()``. You can override
|
||||
these methods to alter behavior.
|
||||
|
||||
A classic use-case for overriding the built-in methods is if you want something
|
||||
to happen whenever you save an object. For example::
|
||||
|
||||
class Blog(models.Model):
|
||||
name = models.CharField(maxlength=100)
|
||||
tagline = models.TextField()
|
||||
|
||||
def save(self):
|
||||
do_something()
|
||||
super(Blog, self).save() # Call the "real" save() method.
|
||||
do_something_else()
|
||||
|
||||
You can also prevent saving::
|
||||
|
||||
class Blog(models.Model):
|
||||
name = models.CharField(maxlength=100)
|
||||
tagline = models.TextField()
|
||||
|
||||
def save(self):
|
||||
if self.name == "Yoko Ono's blog":
|
||||
return # Yoko shall never have her own blog!
|
||||
else:
|
||||
super(Blog, self).save() # Call the "real" save() method.
|
||||
|
||||
.. _database API docs: http://www.djangoproject.com/documentation/db_api/
|
||||
|
||||
Models across files
|
||||
===================
|
||||
|
||||
|
|
Loading…
Reference in New Issue