2011-06-20 1 views
2

Djangoの汎用ビューテンプレートの読み込みの問題、私はアプリ内の次のビューは、「管理者」と呼ばれている

/templates/manager/obj_add.html [プロジェクトフォルダ]:テンプレートが置かれている

class AddObj(CreateView): 
    model = Obj 
    form_model = ObjForm 
    template_name = 'obj_add.html' 
    success_url = 'obj' 
    @method_decorator(login_required) 
    def dispatch(self, *args, **kwargs): 
     return super(AddWar, self).dispatch(*args, **kwargs) 

template_name = 'manager/obj_add.html'を指定すると、読み込まれます。

また、breadcrumbsを作成するためにdjangoテンプレートの依存関係を使用しているので、templates/structure.htmlから拡張されたテンプレート/ manager/m_base.htmlからobj_add.htmlを拡張し、ブレッドクラムへのリンクを追加します{%extends "manager/m_base.html"%}を呼び出すとロードされます。

私の質問は次のとおりです:djangoはtemplatesフォルダから再帰的にテンプレートを探しませんか?フォルダを指定する必要はありますか?

答えて

2

テンプレートを設定するときにアプリ名を指定する理由は2倍です。同じ名前の複数のテンプレートがあり、プロジェクトレベルのテンプレートを上書きすることができます。

サードパーティのアプリには基本テンプレートが含まれていることがよくありますが、独自の目的でブロックをシャッフルまたは上書きすることもできます。たとえば:

アプリテンプレート:

[project]/manager/templates/manager/obj_add.html 

プロジェクトの上書きテンプレート:

[project]/templates/manager/obj_add.html 

あなたはからlocations where templates will be loadedを変更することができます。

+0

非常に明確な答えです。それは間違いありません。 +1 –

関連する問題