Browse Source

Fixed #29192 -- Corrected docs regarding overriding fields from abstract base classes.

ovalseven8 7 years ago
parent
commit
22bcd3a1d8
1 changed files with 4 additions and 3 deletions
  1. 4 3
      docs/topics/db/models.txt

+ 4 - 3
docs/topics/db/models.txt

@@ -897,9 +897,7 @@ information into a number of other models. You write your base class
 and put ``abstract=True`` in the :ref:`Meta <meta-options>`
 and put ``abstract=True`` in the :ref:`Meta <meta-options>`
 class. This model will then not be used to create any database
 class. This model will then not be used to create any database
 table. Instead, when it is used as a base class for other models, its
 table. Instead, when it is used as a base class for other models, its
-fields will be added to those of the child class. It is an error to
-have fields in the abstract base class with the same name as those in
-the child (and Django will raise an exception).
+fields will be added to those of the child class.
 
 
 An example::
 An example::
 
 
@@ -920,6 +918,9 @@ The ``Student`` model will have three fields: ``name``, ``age`` and
 model, since it is an abstract base class. It does not generate a database
 model, since it is an abstract base class. It does not generate a database
 table or have a manager, and cannot be instantiated or saved directly.
 table or have a manager, and cannot be instantiated or saved directly.
 
 
+Fields inherited from abstract base classes can be overridden with another
+field or value, or be removed with ``None``.
+
 For many uses, this type of model inheritance will be exactly what you want.
 For many uses, this type of model inheritance will be exactly what you want.
 It provides a way to factor out common information at the Python level, while
 It provides a way to factor out common information at the Python level, while
 still only creating one database table per child model at the database level.
 still only creating one database table per child model at the database level.