[1.6.x] Fixed #10913 -- Documented how related_name affects QuerySet filtering
Thanks neithere for the suggestion.
Backport of 75bb6ba966
from master
This commit is contained in:
parent
9b89fcc0b0
commit
06b149e220
|
@ -1075,10 +1075,11 @@ define the details of how the relation works.
|
|||
.. attribute:: ForeignKey.related_name
|
||||
|
||||
The name to use for the relation from the related object back to this one.
|
||||
See the :ref:`related objects documentation <backwards-related-objects>` for
|
||||
a full explanation and example. Note that you must set this value
|
||||
when defining relations on :ref:`abstract models
|
||||
<abstract-base-classes>`; and when you do so
|
||||
It's also the default value for :attr:`related_query_name` (the name to use
|
||||
for the reverse filter name from the target model). See the :ref:`related
|
||||
objects documentation <backwards-related-objects>` for a full explanation
|
||||
and example. Note that you must set this value when defining relations on
|
||||
:ref:`abstract models <abstract-base-classes>`; and when you do so
|
||||
:ref:`some special syntax <abstract-related-name>` is available.
|
||||
|
||||
If you'd prefer Django not to create a backwards relation, set
|
||||
|
|
|
@ -1143,8 +1143,9 @@ Example::
|
|||
>>> b.entry_set.filter(headline__contains='Lennon')
|
||||
>>> b.entry_set.count()
|
||||
|
||||
You can override the ``FOO_set`` name by setting the ``related_name``
|
||||
parameter in the ``ForeignKey()`` definition. For example, if the ``Entry``
|
||||
You can override the ``FOO_set`` name by setting the
|
||||
:attr:`~django.db.models.ForeignKey.related_name` parameter in the
|
||||
:class:`~django.db.models.ForeignKey` definition. For example, if the ``Entry``
|
||||
model was altered to ``blog = ForeignKey(Blog, related_name='entries')``, the
|
||||
above example code would look like this::
|
||||
|
||||
|
@ -1218,10 +1219,11 @@ An example makes this easier to understand::
|
|||
a.entry_set.all() # Returns all Entry objects for this Author.
|
||||
|
||||
Like :class:`~django.db.models.ForeignKey`,
|
||||
:class:`~django.db.models.ManyToManyField` can specify ``related_name``. In the
|
||||
above example, if the :class:`~django.db.models.ManyToManyField` in ``Entry``
|
||||
had specified ``related_name='entries'``, then each ``Author`` instance would
|
||||
have an ``entries`` attribute instead of ``entry_set``.
|
||||
:class:`~django.db.models.ManyToManyField` can specify
|
||||
:attr:`~django.db.models.ManyToManyField.related_name`. In the above example,
|
||||
if the :class:`~django.db.models.ManyToManyField` in ``Entry`` had specified
|
||||
``related_name='entries'``, then each ``Author`` instance would have an
|
||||
``entries`` attribute instead of ``entry_set``.
|
||||
|
||||
One-to-one relationships
|
||||
------------------------
|
||||
|
|
Loading…
Reference in New Issue