13

重複の可能性:
Django ビュー - 最初に呼び出し元のアプリのディレクトリからテンプレートを読み込む

多数のアプリケーションを含む Django プロジェクトがあります。実際のファイル構造は次のとおりです。

myproj/
  default/
    templates/
      index.html  (1)
  app1/
    templates/
      index.html  (2)
  app2/
    templates/
      index.html  (3)

テンプレートの解決時に、アクティブなアプリケーションのテンプレート ディレクトリが最も優先されると予想していました。しかし、実際には INSTALLED_APPS の順序に従って最初のテンプレートを取得しました! インストールされたアプリの順序を変更すると、それに応じてテンプレートが変更されます。

質問: 最初に現在のアプリケーションからテンプレートを取得する方法はありますか? テンプレート名/明示的なディレクトリ指定の一意性は、それを達成する唯一の方法ですか?

4

1 に答える 1

14

通常の解決策は、次のようなアプリにちなんで名付けられた別のサブディレクトリにテンプレートを配置することです。

myproj/
  app1/
    templates/
      app1/
        index.html

これは、出荷されたアプリケーション(などdjango.contrib.admin)によって実行され、非常にうまく機能します。index.html私は通常、プロジェクト固有のファイル(サイト全体のインデックスなど)のテンプレートルートのような一般的な名前を使用します。

于 2012-07-13T12:55:35.790 に答える