Ваш лучший выбор с большим набором моделей - использовать модули django в ваших интересах и просто создать папку с именем models. Переместите ваши old models.py в эту папку моделей и переименуйте ее __init__.py
. Это позволит вам разделить каждую модель на более конкретные файлы внутри этой папки модели.
Вам понадобится импортировать каждую модель только в пространство имен __init__.py
.
Так, например, вы можете разделить его на:
yourapp/
models/
__init__.py # This file should import anything from your other files in this directory
basic.py # Just an example name
morespecificmodels.py # Just an example name
managers.py # Might want to separate your manager into this
Тогда ваш __init__.py
может быть просто:
from basic import * # You should replace * with each models name, most likely.
from managers import YourManager # Whatever your manager is called.
Это структура, которую я использую, когда мои файлы модели получить но я стараюсь разделить вещи на более подключаемые приложения как можно чаще, так что это редко используется мной.
Надеюсь, это поможет.
Как вы тогда разбираетесь с моделями.py нужно импортировать manage.py и наоборот? – Jeff
manager.py не нужно импортировать модели - модель, о которой идет речь, всегда будет доступна как 'self.model' в менеджере. – jacobian
Это здорово ... если QuerySet вашего менеджера не должен ссылаться на другую модель - тогда вы не можете импортировать его и ДОЛЖНЫ положить его в models.py (например, если вы исключаете элементы, которые существуют в другой модели и т. Д.). –