2013-12-15 156 views
1

應該是一個簡單的答案,但我似乎並沒有得到它。Django 1.6:通過應用程序模板擴展項目模板

Django 1.4曾經有一個文件夾templates與每個應用程序的子文件夾。然後我會通過書面形式延長主模板:

{% extend "base.html" %} #extending the master 
{% extend "app/base.html" %} #extending another template from an app 

然而,在Django 1.6 documentation每個應用程序查找它自己的文件夾templates

...我們把這個應用程序的模板目錄(民意調查/模板),而不是項目的(模板)...

。這對於模塊化來說是很好的。但是當我嘗試擴展項目的base.html(所有應用程序都應該擴展)時,我得到TemplateDoesNotExist錯誤。我試圖糾正以不同的方式的路徑,但它沒有工作:

base.html 
templates/base.html 
../templates/base.html 
../../templates/base.html 
../../../templates/base.html 
projectname/templates/base.html 
projectname/base.html 

如果你有一個想法如何使這項工作,請讓我知道。

乾杯! 第

+7

聽起來對我來說就像一個settings.TEMPLATE_DIRS問題。你能分享它和其他相關信息(你的項目佈局等)嗎? – yuvi

+0

你從哪裏讀到「在Django 1.6中,每個應用程序都會查找它自己的模板文件夾。」 ? –

+0

@yuvi,事實上,默認設置文件中缺少模板目錄。添加它,它現在與'{%extends「base.html」%}'一起工作正確答案,所以我將其標記爲正確 – mgPePe

回答

2

此錯誤通常意味着它無法找到您在settings.TEMPLATE_DIRS列出的目錄中提到的模板。正如你在你的評論中所說的那樣,原來是這個問題