From 75bb6ba96660e2a06e18d99120c05db2bb9fa9cc Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Wed, 2 Oct 2013 12:12:53 -0400 Subject: [PATCH] Fixed #10913 -- Documented how related_name affects QuerySet filtering Thanks neithere for the suggestion. --- docs/ref/models/fields.txt | 9 +++++---- docs/topics/db/queries.txt | 14 ++++++++------ 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/docs/ref/models/fields.txt b/docs/ref/models/fields.txt index 248c630437..bcadf4d27a 100644 --- a/docs/ref/models/fields.txt +++ b/docs/ref/models/fields.txt @@ -1078,10 +1078,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 ` for - a full explanation and example. Note that you must set this value - when defining relations on :ref:`abstract models - `; 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 ` for a full explanation + and example. Note that you must set this value when defining relations on + :ref:`abstract models `; and when you do so :ref:`some special syntax ` is available. If you'd prefer Django not to create a backwards relation, set diff --git a/docs/topics/db/queries.txt b/docs/topics/db/queries.txt index 696bddac95..19c1af7c0f 100644 --- a/docs/topics/db/queries.txt +++ b/docs/topics/db/queries.txt @@ -1124,8 +1124,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:: @@ -1224,10 +1225,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 ------------------------