2016-11-23 99 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