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 | |
| parent | 83554b018ef283827c0e7459ab934d447b3419d5 (diff) | |
Fixed #3871 -- Custom managers when traversing reverse relations.
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/releases/1.7.txt | 6 | ||||
| -rw-r--r-- | docs/topics/db/queries.txt | 25 |
2 files changed, 31 insertions, 0 deletions
diff --git a/docs/releases/1.7.txt b/docs/releases/1.7.txt index 924ec51ba9..6a29635d18 100644 --- a/docs/releases/1.7.txt +++ b/docs/releases/1.7.txt @@ -92,6 +92,12 @@ The :meth:`QuerySet.as_manager() <django.db.models.query.QuerySet.as_manager>` class method has been added to :ref:`create Manager with QuerySet methods <create-manager-with-queryset-methods>`. +Using a custom manager when traversing reverse relations +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +It is now possible to :ref:`specify a custom manager +<using-custom-reverse-manager>` when traversing a reverse relationship. + Admin shortcuts support time zones ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 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 |
