Как на самом деле работает настройка 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.

Вернуться на верх