この質問は以前に頼まれました:What is the purpose of apps.py in Django 1.9?Djangoのapps.pyの目的は何ですか?
アプリケーション設定は、アプリケーションのためのメタデータを格納するオブジェクト。いくつかの属性は、AppConfigサブクラスで設定できます。その他はDjangoと読み取り専用で設定されます。
ただし、アプリケーションのメタデータとはどういう意味ですか?それはAppConfig
metadata:name
, verbose_name
, path
, label
, module
, models_module
に限定されていますか?
それとも我々は日付の書式設定を持っているblog
アプリを、次のように普通に定義では、たとえば、特にアプリケーション固有のメタデータのために、事前に定義されたメタデータをbeyondsそれが拡張しても意味がない:
# 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
。だから、settings.py
ではなく、apps.py
の内部にアプリケーション構成を入れるための有効な仮定/引数/規則ですか?