Этот вопрос задан ранее: Какова цель 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
?