Fixed #25127 -- Documented how to organize models in a package.

This commit is contained in:
Evan Palmer 2016-06-03 11:15:32 -07:00 committed by Tim Graham
parent dc88516e5b
commit 84d8d1d715
1 changed files with 24 additions and 0 deletions

View File

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