2016-11-23 181 views
0

我們在python中使用django。我正面臨着包含標籤的問題。我想在應用程序的所有模塊中包含一個頭文件。 在應用程序模板目錄中包含所有包含模塊子文件夾的html文件。在任何子模塊中,如果我正在創建header html並在base.html中包含此標記,那麼它正在工作。 但是,如果我把頭HTML放在父目錄中,它不適用於任何子模塊。 我甚至在django模板的html中嘗試過{% include "../header.html" %},但沒有運氣。Django包含標籤

我的應用程序的項目結構,其中根目錄我有模板,靜態,處理程序文件夾。裏面的模板我有sub1sub2文件夾。在sub1中,我有base.html和模板父目錄base.html,header.html,index.html。見下:

Root 
----templates 
----------Sub1 
-----------------base.html 
----------Sub2 
----------base.html 
----------header.html 
----------index.html 
----static 
----handlers 

回答

0

我不知道我是否理解你。試試{% include "header.html" %},django模板的搜索應該從模板文件夾開始。

模板文件夾在Django配置文件「setting.py」中配置。

TEMPLATE_PATH = os.path.join(BASE_DIR, 'templates')

另外,我有一個項目,該項目可seprate Django的模板使用的WebPack和支持玉,ES6和SCSS後端發展。自述是中國:(,但你可以運行該項目,並檢查源代碼。

https://github.com/njleonzhang/webpack-django-starter

+0

我試過{%include「header.html」%}這個也不知道模板文件是否必須先加載或不加載。 –

0

Django模板包括標籤不承認相對路徑。你需要給它你的模板目錄下的路徑,所以儘量使用替代以下:

{% include "Sub2/header.html" %} 

更新:

好像你的「header.html中」是對「分公司2」的水平,而不是它裏面也就是說,它的雙直接在模板目錄下所以你應該嘗試:

{% include "header.html" %} 
+0

已經嘗試過,力度鍛鍊。 –

+0

爲了記錄Django 1.10現在支持包含的相對路徑並擴展了https://docs.djangoproject.com/en/1.11/ref/templates/builtins/#include – amjoconn