Fixed #25127 -- Documented how to organize models in a package.
This commit is contained in:
parent
dc88516e5b
commit
84d8d1d715
|
@ -1410,6 +1410,30 @@ different database tables).
|
|||
Django will raise a :exc:`~django.core.exceptions.FieldError` if you override
|
||||
any model field in any ancestor model.
|
||||
|
||||
Organizing models in a package
|
||||
==============================
|
||||
|
||||
The :djadmin:`manage.py startapp <startapp>` command creates an application
|
||||
structure that includes a ``models.py`` file. If you have many models,
|
||||
organizing them in separate files may be useful.
|
||||
|
||||
To do so, create a ``models`` package. Remove ``models.py`` and create a
|
||||
``myapp/models/`` directory with an ``__init__.py`` file and the files to
|
||||
store your models. You must import the models in the ``__init__.py`` file.
|
||||
|
||||
For example, if you had ``organic.py`` and ``synthetic.py`` in the ``models``
|
||||
directory:
|
||||
|
||||
.. snippet::
|
||||
:filename: myapp/models/__init__.py
|
||||
|
||||
from .organic import Person
|
||||
from .synthetic import Robot
|
||||
|
||||
Explicitly importing each model rather than using ``from .models import *``
|
||||
has the advantages of not cluttering the namespace, making code more readable,
|
||||
and keeping code analysis tools useful.
|
||||
|
||||
.. seealso::
|
||||
|
||||
:doc:`The Models Reference </ref/models/index>`
|
||||
|
|
Loading…
Reference in New Issue