2017-12-06 7 views
3

ほとんどのドキュメントでは、各アプリケーションの名前をDjangoプロジェクトの設定のINSTALLED_APPS配列に追加するように指示しています。これのメリット/目的は何ですか? 2つのアプリケーションを作成し、INSTALLED_APPS配列に1つの名前だけを含めると、どのような機能が得られますか?DjangoのINSTALLED_APPSに追加する目的は何ですか?

答えて

4

Djangoは、モデル、管理コマンド、テスト、およびその他のユーティリティを探すためのすべての場所のリストとしてINSTALLED_APPSを使用します。

次の2つのアプリケーション(たとえばmyappmyuninstalledapp)を作ったが、一つだけがINSTALLED_APPSに記載されていた、あなたは次のような現象がわかりたい場合:

  1. myuninstalledapp/models.pyに含まれているモデルは、移行の変化を誘発することはない(または初期移行を生成する)。テーブルが作成されていないため、データベースレベルで対話できません。
  2. myapp/static/にリストされた静的ファイルは、collectstaticまたはテストサーバーの静的ファイルの一部として検出されますが、myuninstalledapp/staticファイルは検出されません。
  3. myapp/tests.py内のテストは実行されますが、myuninstalledapp/tests.pyは実行されません。
  4. myuninstalledapp/management/commands/にリストされている管理コマンドは検出されません。

だから本当に、あなたは(あなたもpython manage.py startappでそれらを作成することができます)アプリケーションをインストールされていない、あなたのDjangoプロジェクト内のフォルダを持って歓迎しているが、特定の自動検出Djangoのユーティリティが動作しませんことを知っているだけでそのアプリケーション。

+1

ポイント1に追加:myuninstalledappからForeignKeysが指すモデルに対して、逆リレーションシップが作成されませんでした。 –

関連する問題