mirror of https://github.com/django/django.git
Fixed #10367: Added note to generic-relation docs explaining when it's necessary to pass in field names to create a reverse relation.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@10273 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
aea0bb68e0
commit
131de1cf2b
|
@ -303,7 +303,20 @@ be used to retrieve their associated ``TaggedItems``::
|
||||||
>>> b.tags.all()
|
>>> b.tags.all()
|
||||||
[<TaggedItem: django>, <TaggedItem: python>]
|
[<TaggedItem: django>, <TaggedItem: python>]
|
||||||
|
|
||||||
If you don't add the reverse relationship, you can do the lookup manually::
|
Just as :class:`django.contrib.contenttypes.generic.GenericForeignKey`
|
||||||
|
accepts the names of the content-type and object-ID fields as
|
||||||
|
arguments, so too does ``GenericRelation``; if the model which has the
|
||||||
|
generic foreign key is using non-default names for those fields, you
|
||||||
|
must pass the names of the fields when setting up a
|
||||||
|
``GenericRelation`` to it. For example, if the ``TaggedItem`` model
|
||||||
|
referred to above used fields named ``content_type_fk`` and
|
||||||
|
``object_primary_key`` to create its generic foreign key, then a
|
||||||
|
``GenericRelation`` back to it would need to be defined like so::
|
||||||
|
|
||||||
|
tags = generic.GenericRelation('content_type_fk', 'object_primary_key')
|
||||||
|
|
||||||
|
Of course, if you don't add the reverse relationship, you can do the
|
||||||
|
same types of lookups manually::
|
||||||
|
|
||||||
>>> b = Bookmark.objects.get(url='http://www.djangoproject.com/')
|
>>> b = Bookmark.objects.get(url='http://www.djangoproject.com/')
|
||||||
>>> bookmark_type = ContentType.objects.get_for_model(b)
|
>>> bookmark_type = ContentType.objects.get_for_model(b)
|
||||||
|
|
Loading…
Reference in New Issue