Недавно я включил коллекцию приложений Django в пространство имен, чтобы мы могли повторно использовать их для нескольких развертываний с различными настройками, мультимедийными файлами и т. Д. Суть этого работала хорошо. Мы можем создать новый проект Django и включить все приложения (из нашего пространства имен), которые нам нужны, в settings.INSTALLED_APPS
.
Проблема, которую я пытаюсь решить, заключается в том, что мы также должны явно включить приложения Django, от которых зависят наши приложения с пространством имен. Например, где нам нужно:
INSTALLED_APPS = [
'django.contrib.contenttypes',
'django.contrib.auth',
'django.contrib.sessions',
'django.contrib.messages',
'import_export',
'rest_framework',
'reversion',
'crispy_forms',
'our_namespace.our_app',
]
Я бы хотел уменьшить это до:
INSTALLED_APPS = [
'our_namespace.our_app', # brings all its dependencies with it
]
Другие настройки проще обрабатывать, но ввод в INSTALLED_APPS
кажется трудным. Выполнение этого из AppConfig.ready()
, похоже, не работает, потому что - если ни по какой другой причине - запускается только после того, как модели импортировали (что обычно слишком поздно).
Какие у меня есть варианты? Я просто слишком ленивый на этот раз?