Browse Source

Fixed #30362 -- Noted partial indexes and constraints restrictions with abstract base classes.

Thanks Carlton Gibson for the review.
Mariusz Felisiak 6 years ago
parent
commit
5df3301aab
2 changed files with 19 additions and 0 deletions
  1. 9 0
      docs/ref/models/constraints.txt
  2. 10 0
      docs/ref/models/indexes.txt

+ 9 - 0
docs/ref/models/constraints.txt

@@ -19,6 +19,15 @@ option.
     convention is to use ``from django.db import models`` and refer to the
     constraints as ``models.<Foo>Constraint``.
 
+.. admonition:: Constraints in abstract base classes
+
+    You must always specify a unique name for the constraint. As such, you
+    cannot normally specify a constraint on an abstract base class, since the
+    :attr:`Meta.constraints <django.db.models.Options.constraints>` option is
+    inherited by subclasses, with exactly the same values for the attributes
+    (including ``name``) each time. Instead, specify the ``constraints`` option
+    on subclasses directly, providing a unique name for each constraint.
+
 ``CheckConstraint``
 ===================
 

+ 10 - 0
docs/ref/models/indexes.txt

@@ -49,6 +49,16 @@ The name of the index. If ``name`` isn't provided Django will auto-generate a
 name. For compatibility with different databases, index names cannot be longer
 than 30 characters and shouldn't start with a number (0-9) or underscore (_).
 
+.. admonition:: Partial indexes in abstract base classes
+
+    You must always specify a unique name for an index. As such, you
+    cannot normally specify a partial index on an abstract base class, since
+    the :attr:`Meta.indexes <django.db.models.Options.indexes>` option is
+    inherited by subclasses, with exactly the same values for the attributes
+    (including ``name``) each time. Instead, specify the ``indexes`` option
+    on subclasses directly, providing a unique name for each index.
+
+
 ``db_tablespace``
 -----------------