Django 1.9のapps.pyの目的は何ですか?


回答:


136

apps.pyファイルの目的:

このファイルは、ユーザーがアプリのアプリケーション構成を含めるのに役立つように作成されます。これを使用して、アプリケーションの一部の属性を構成できます。

Application Configurationドキュメントから:

アプリケーション構成オブジェクトは、アプリケーションのメタデータを格納します。一部の属性は、AppConfigサブクラスで構成できます。その他はDjangoによって設定され、読み取り専用です。

ドキュメントの

というプラグイン可能なアプリを作成しているとしましょう。"Rock ’n’ roll"管理者に適切な名前を付けるには、次のようにします。

ではrock_n_rollアプリ、我々は作成RockNRollConfigのAppConfigクラスを。

#rock_n_roll/apps.py
from django.apps import AppConfig

class RockNRollConfig(AppConfig): # Our app config class
    name = 'rock_n_roll'
    verbose_name = "Rock ’n’ roll"

私たちはあなたのアプリケーションがこのロードすることができますAppConfig指定することで、デフォルトでは、サブクラスをdefault_app_configしてrock_n_roll/__init__.pyファイル。

# rock_n_roll/__init__.py    
default_app_config = 'rock_n_roll.apps.RockNRollConfig'

これを行うとRockNRollConfigINSTALLED_APPSだけが含まれているときに使用されます'rock_n_roll'。これによりAppConfig、ユーザーがINSTALLED_APPS設定を更新しなくても機能を利用できます。


悲しいことに、私はあなたの答えを得ることができませんでした
hspandher

2
without requiring our users to update their INSTALLED_APPS setting.:これはどういう意味ですか:基本的にdefault_app_config = 'rock_n_roll.apps.RockNRollConfig'私がしなければ、INSTALLED_APPSで言及する必要がありますdefault_app_config = 'rock_n_roll.apps.RockNRollConfig'
Santhosh Yedidi

15

これは、アプリケーション構成を配置するための推奨される場所です。この機能は1.7以降で使用apps.pyされていますが、その使用を促進し、構成を容易にするために、ファイルはデフォルトのアプリテンプレートに追加されています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.