summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2014-08-19 06:27:27 -0400
committerTim Graham <timograham@gmail.com>2014-08-19 06:30:01 -0400
commitd1e4fb996bd969c9a5d1dc4546b3fd46766ad25e (patch)
treeed5adb6a0736f73d91e2aa82996b41fcdb9b436f
parent190d81179f5eba6f2a1042321f0d39f04860163a (diff)
[1.6.x] Fixed #23282 -- Corrected inheritance and reverse relations example.
Thanks knowledgepoint-devs for the report and claudep for review. Backport of 7006187064 from master
-rw-r--r--docs/topics/db/models.txt22
1 files changed, 15 insertions, 7 deletions
diff --git a/docs/topics/db/models.txt b/docs/topics/db/models.txt
index 2e50acda93..753b236ee2 100644
--- a/docs/topics/db/models.txt
+++ b/docs/topics/db/models.txt
@@ -1044,19 +1044,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:`validate` or :djadmin:`syncdb`.
+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
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~