Этот вопрос задан ранее: Какова цель apps.py в Django 1.9?
Объекты конфигурации приложения хранят метаданные для приложения. Некоторые атрибуты могут быть настроены в подклассах AppConfig. Другие устанавливаются Django и доступны только для чтения.
Однако, что это означает метаданные для приложения? Ограничено ли оно только теми AppConfig метаданные: name, verbose_name, path, label, module, models_module?
Или имеет смысл расширять предопределенные метаданные, особенно для метаданных конкретных приложений, например, в приложениях blog мы имеем конфигурацию формата даты, обычно определяемую следующим образом:
# File: settings.py
BLOG = {
'DATE_FORMAT': 'ddMMYYY',
}
В котором он используется следующим образом:
# File: blog/<...>.py
from django.conf import settings
date_format = settings.BLOG['DATE_FORMAT']
Наоборот, мы могли бы переместить эту конфигурацию в blog/apps.py как BlogConfig?
class BlogConfig(AppConfig):
name = 'blog'
verbose_name = 'Awesome Blog'
date_format = 'ddMMYYYY'
Так что во всем коде приложения, date_format используется:
# File: blog/<...>.py
from django.apps import apps
date_format = apps.get_app_config('blog').date_format
Мне кажется, что settings.py - это проект, но не настройки приложения. Таким образом, больше звуков помещать все настройки приложения внутри apps.py, затем settings.py. Итак, это допустимое предположение/аргумент/соглашение для меня, чтобы добавить конфигурацию приложения внутри apps.py вместо settings.py?