summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorLoic Bistuer <loic.bistuer@sixmedia.com>2013-09-19 00:31:07 +0700
committerAnssi Kääriäinen <akaariai@gmail.com>2013-09-25 21:15:59 +0300
commit04a2a6b0f9cb6bb98edfe84bf4361216d60a4e38 (patch)
treee33452e2b614bbe2f707927ac03f2389f43e512c /docs
parent83554b018ef283827c0e7459ab934d447b3419d5 (diff)
Fixed #3871 -- Custom managers when traversing reverse relations.
Diffstat (limited to 'docs')
-rw-r--r--docs/releases/1.7.txt6
-rw-r--r--docs/topics/db/queries.txt25
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