[2.2.x] Corrected GenericRelation's related_query_name manual lookup example.

And changed related_query_name to a singular noun.
Backport of 130192b12b from master.
This commit is contained in:
Pavel Savchenko 2019-01-21 16:13:42 +01:00 committed by Tim Graham
parent 28fb4ed5d9
commit 51247bc55f
1 changed files with 6 additions and 6 deletions

View File

@ -394,21 +394,21 @@ be used to retrieve their associated ``TaggedItems``::
Defining :class:`~django.contrib.contenttypes.fields.GenericRelation` with
``related_query_name`` set allows querying from the related object::
tags = GenericRelation(TaggedItem, related_query_name='bookmarks')
tags = GenericRelation(TaggedItem, related_query_name='bookmark')
This enables filtering, ordering, and other query operations on ``Bookmark``
from ``TaggedItem``::
>>> # Get all tags belonging to bookmarks containing `django` in the url
>>> TaggedItem.objects.filter(bookmarks__url__contains='django')
>>> TaggedItem.objects.filter(bookmark__url__contains='django')
<QuerySet [<TaggedItem: django>, <TaggedItem: python>]>
Of course, if you don't add the reverse relationship, you can do the
Of course, if you don't add the ``related_query_name``, you can do the
same types of lookups manually::
>>> b = Bookmark.objects.get(url='https://www.djangoproject.com/')
>>> bookmark_type = ContentType.objects.get_for_model(b)
>>> TaggedItem.objects.filter(content_type__pk=bookmark_type.id, object_id=b.id)
>>> bookmarks = Bookmark.objects.filter(url__contains='django')
>>> bookmark_type = ContentType.objects.get_for_model(Bookmark)
>>> TaggedItem.objects.filter(content_type__pk=bookmark_type.id, object_id__in=bookmarks)
<QuerySet [<TaggedItem: django>, <TaggedItem: python>]>
Just as :class:`~django.contrib.contenttypes.fields.GenericForeignKey`