在Django的教程,它建議應用程序的模板爲什麼我們建議將模板放在project/app_name/templates/app_name /?
project/app_name/templates/app_name
導致他們去從觀點的東西被稱爲像這樣:
class ScenarioDetails(generic.DetailView):
model = Scenario
template_name= "cmmods/scenario.html"
我想明白了什麼落後於這一建議。
我看不出有什麼情況會使它不好把模板
project/app_name/templates
,並指他們正是如此:
class ScenarioDetails(generic.DetailView):
model = Scenario
template_name= "scenario.html"
這是什麼建議的背後?
感謝您的回答,對不起我不太關注。你是說我不能在每個應用程序的'app_name/template /'文件夾中安全地擁有不同的base.html?我_think_(儘管我必須去搜索),我回想起的那個教程確實提示base.html(僅)會出現在應用程序的根模板文件夾中! – GreenAsJade 2014-12-04 10:55:18
@GreenAsJade好吧,這可能是一個令人困惑的例子,因爲許多網站在根文件夾中有一個'base.html'模板,它定義了網站中_every_ html頁面的基本結構。由於這是一個項目範圍的模板(而不是特定於應用程序),它應該確實位於根模板文件夾中。但是,假設你的應用中有模型的'detail.html'。如果它駐留在模板文件夾的根目錄下,而另一個應用程序爲另一個模型定義了同樣的'detail.html',則模板查找程序將只能找到其中一個模板,其中一個應用程序最終會使用錯誤的模板。 – knbk 2014-12-04 10:58:40
所以我認爲你所說的是即使視圖是「在」一個特定的應用程序,但模板查找器不能利用這個來確定選擇哪個模板?它不能說「這個視圖在app1中,所以我將使用'app1/templates/detail.html'」 – GreenAsJade 2014-12-04 11:00:16