diff options
| author | Loic Bistuer <loic.bistuer@sixmedia.com> | 2014-02-18 23:49:13 +0700 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2014-02-19 07:45:24 -0500 |
| commit | 99416c7ad061f9316089ee490ea721f79141bdf3 (patch) | |
| tree | ffd5fa553441fa9f56aa630a68cb31cf8b3f22e6 /docs | |
| parent | b4f21d1807e0faf709ee5ae3a1518d6db8983581 (diff) | |
Added an example to the release notes for custom reverse managers.
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/releases/1.7.txt | 14 | ||||
| -rw-r--r-- | docs/topics/db/queries.txt | 16 |
2 files changed, 25 insertions, 5 deletions
diff --git a/docs/releases/1.7.txt b/docs/releases/1.7.txt index adce067eb0..fc1f0f81cd 100644 --- a/docs/releases/1.7.txt +++ b/docs/releases/1.7.txt @@ -169,7 +169,19 @@ 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. +<using-custom-reverse-manager>` when traversing a reverse relationship:: + + class Blog(models.Model): + pass + + class Entry(models.Model): + blog = models.ForeignKey(Blog) + + objects = models.Manager() # Default Manager + entries = EntryManager() # Custom Manager + + b = Blog.objects.get(id=1) + b.entry_set(manager='entries').all() New system check framework ~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/docs/topics/db/queries.txt b/docs/topics/db/queries.txt index 2aa60be0b8..f53d1a9998 100644 --- a/docs/topics/db/queries.txt +++ b/docs/topics/db/queries.txt @@ -1155,11 +1155,19 @@ query you can use the following syntax:: class Entry(models.Model): #... - objects = models.Manager() # Default Manager - entries = EntryManager() # Custom Manager + objects = models.Manager() # Default Manager + entries = EntryManager() # Custom Manager - >>> b = Blog.objects.get(id=1) - >>> b.entry_set(manager='entries').all() + b = Blog.objects.get(id=1) + b.entry_set(manager='entries').all() + +If ``EntryManager`` performed default filtering in its ``get_queryset()`` +method, that filtering would apply to the ``all()`` call. + +Of course, specifying a custom reverse manager also enables you to call its +custom methods:: + + b.entry_set(manager='entries').is_published() Additional methods to handle related objects ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
