2012-07-13 21 views
9

可能性の重複:
Django view - load template from calling app's dir firstDjangoのテンプレート名の競合

私はアプリケーションの数とDjangoプロジェクトを持っています。実際にはファイル構造は次のとおりです:

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

アクティブなアプリケーションのテンプレートディレクトリは、テンプレート解決時に最も高い優先度を持つことが予想されます。しかし、実際にはINSTALLED_APPSの注文に合わせて最初のテンプレートを手に入れました! インストールされているアプリ - テンプレートの順番を変更すると、それに応じて変更されます。

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

+1

http://stackoverflow.com/questions/3092865/django-view-load-template-from-calling-apps-dir-first – Rohan

+0

ありがとうございました。 –

答えて

10

通常の解決策は、次のような、あなたのアプリにちなんで名付けられた、別のサブディレクトリにテンプレートを置くことです。これは、(例えばdjango.contrib.adminなど)出荷のアプリケーションによって行われ、かなりうまく機能している

myproj/ 
    app1/ 
    templates/ 
     app1/ 
     index.html 

。私は通常、プロジェクト固有のファイル(サイト全体のインデックスなど)のテンプレートルートにindex.htmlのような総称名を使用します。

+0

これはDjangoの方法です。私はこれを忘れていたので、私の答えは削除されました。これは私の心の正しい答えです。 – Jens

関連する問題