diff options
| author | Loic Bistuer <loic.bistuer@sixmedia.com> | 2013-09-19 00:31:07 +0700 |
|---|---|---|
| committer | Anssi Kääriäinen <akaariai@gmail.com> | 2013-09-25 21:15:59 +0300 |
| commit | 04a2a6b0f9cb6bb98edfe84bf4361216d60a4e38 (patch) | |
| tree | e33452e2b614bbe2f707927ac03f2389f43e512c /docs/topics | |
| parent | 83554b018ef283827c0e7459ab934d447b3419d5 (diff) | |
Fixed #3871 -- Custom managers when traversing reverse relations.
Diffstat (limited to 'docs/topics')
| -rw-r--r-- | docs/topics/db/queries.txt | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/docs/topics/db/queries.txt b/docs/topics/db/queries.txt index 23f4ec7398..696bddac95 100644 --- a/docs/topics/db/queries.txt +++ b/docs/topics/db/queries.txt @@ -1136,6 +1136,31 @@ above example code would look like this:: >>> b.entries.filter(headline__contains='Lennon') >>> b.entries.count() +.. _using-custom-reverse-manager: + +Using a custom reverse manager +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. versionadded:: 1.7 + +By default the :class:`~django.db.models.fields.related.RelatedManager` used +for reverse relations is a subclass of the :ref:`default manager <manager-names>` +for that model. If you would like to specify a different manager for a given +query you can use the following syntax:: + + from django.db import models + + class Entry(models.Model): + #... + objects = models.Manager() # Default Manager + entries = EntryManager() # Custom Manager + + >>> b = Blog.objects.get(id=1) + >>> b.entry_set(manager='entries').all() + +Additional methods to handle related objects +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + In addition to the :class:`~django.db.models.query.QuerySet` methods defined in "Retrieving objects" above, the :class:`~django.db.models.ForeignKey` :class:`~django.db.models.Manager` has additional methods used to handle the |
