Я разрабатываю приложение Django, которое представляет собой большую систему, которая требует, чтобы несколько под-приложений сохраняли чистоту. Поэтому у меня есть каталог верхнего уровня, который является приложением Django (поскольку он имеет пустой файл models.py
) и несколько подкаталогов, которые также являются приложениями сами по себе.
Причина, по которой я выложил приложение таким образом, заключается в том, что суб-приложения разделены, но они никогда не будут использоваться самостоятельно, вне родительского приложения. Поэтому нет смысла распространять их отдельно.
При установке моего приложения файл настроек должен содержать следующее:
INSTALLED_APPS = (
...
'myapp',
'myapp.subapp1',
'myapp.subapp2',
...
)
... который явно субоптимален. Это также имеет слегка неприятный результат, требуя, чтобы все подзапросы ссылались на их "внутреннее" имя (т.е. subapp1
, subapp2
и т.д.). Например, если я хочу reset таблицы базы данных для subapp1, я должен ввести:
python manage.py reset subapp1
Это раздражает, особенно потому, что у меня есть суб-приложение под названием core
- которое может конфликтовать с другим именем приложения, когда мое приложение установлено в пользовательском проекте.
Неужели я делаю это совершенно неправильно или не могу заставить эти "внутренние" приложения ссылаться на их полное имя?