Как на самом деле работает настройка Django, позволяющая ему узнать о вашем приложении?
Я изучаю django уже несколько недель, но я все еще не могу полностью понять, как на самом деле работают некоторые настройки, например, самое основное, что когда я создаю новое приложение под названием "base" внутри моего проекта django, я должен сообщить django о своем приложении, поэтому я пишу так, как делает большинство людей
'INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'base.apps.BaseConfig',
]'
но если я напишу только имя моего приложения 'base', оно все равно работает, так что может кто-нибудь сказать мне, в чем разница между этими двумя?
'INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'base',
]'
Нет такой большой разницы.
Лучше создать CustomAppConfig, потому что вы можете настроить различные параметры, такие как имя, ярлык, имя_вербозы для панели администратора.
Обычно вы можете рассматривать base
как короткое имя вашего приложения, а base.apps.BaseConfig
как его длинное имя. Если вы работаете над простым проектом, вы можете продолжать использовать base
, но если вы хотите иметь специфические конфигурации для приложения, вам следует использовать base.apps.BaseConfig
.
Согласно документации django вам лучше определить подкласс AppConfig в вашем приложении apps.py
и использовать точечный путь (longname) base.apps.BaseConfig
в INSTALLED_APPS
.
Подробнее см. в Конфигурируемые атрибуты класса AppConfig.