From 700618706425ae15888b9e60bdc7a00dd0b32a2f Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Tue, 19 Aug 2014 06:27:27 -0400 Subject: [PATCH] Fixed #23282 -- Corrected inheritance and reverse relations example. Thanks knowledgepoint-devs for the report and claudep for review. --- docs/topics/db/models.txt | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/docs/topics/db/models.txt b/docs/topics/db/models.txt index 682db349397..c19893f5360 100644 --- a/docs/topics/db/models.txt +++ b/docs/topics/db/models.txt @@ -1066,19 +1066,27 @@ as in the above example. However, this uses up the name that is the default :attr:`~django.db.models.ForeignKey.related_name` value for :class:`~django.db.models.ForeignKey` and :class:`~django.db.models.ManyToManyField` relations. If you -are putting those types of relations on a subclass of another model, -you **must** specify the -:attr:`~django.db.models.ForeignKey.related_name` attribute on each -such field. If you forget, Django will raise an error when you run -:djadmin:`check` or :djadmin:`migrate`. +are putting those types of relations on a subclass of the parent model, you +**must** specify the :attr:`~django.db.models.ForeignKey.related_name` +attribute on each such field. If you forget, Django will raise a validation +error. For example, using the above ``Place`` class again, let's create another subclass with a :class:`~django.db.models.ManyToManyField`:: class Supplier(Place): - # Must specify related_name on all relations. - customers = models.ManyToManyField(Restaurant, related_name='provider') + customers = models.ManyToManyField(Place) +This results in the error:: + + Reverse query name for 'Supplier.customers' clashes with reverse query + name for 'Supplier.place_ptr'. + + HINT: Add or change a related_name argument to the definition for + 'Supplier.customers' or 'Supplier.place_ptr'. + +Adding ``related_name`` to the ``customers`` field as follows would resolve the +error: ``models.ManyToManyField(Place, related_name='provider')``. Specifying the parent link field ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~