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

This commit is contained in:
ovalseven8 2018-03-06 17:18:49 +01:00 committed by Tim Graham
parent e17088a108
commit 22bcd3a1d8
1 changed files with 4 additions and 3 deletions

View File

@ -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>`
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
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::
@ -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
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.
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.