2012-07-07 94 views
2

这个问题有点类似于this one,除了一个小的变化 -Django - 包含模板中的块标记不起作用 - 为什么?

我在parent.html块标记,有的填充在调用模板,在模板中包含的一些人。包括的不起作用。例如:

#parent.html 
<head>{% block head %}Parent head {% endblock %} </head> 
<body> {% block body %} Parent body {% endblock %} 
</body> 

#include.html 

{%block body %} Child body {% endblock %} 

#child.html 
{% extends 'parent.html' %} 

{% block head %} 
Child head 
{% endblock %} 

{% include 'include.html' %} 

但是这给输出:

儿童头部 儿童身体

任何变通办法:所需的 儿童头部 母体

intsead?

回答

2

此:

{% include 'include.html' %} 

不包括在任何模块,并不会被渲染,因为你在响应看到。

修改以这种方式你child.html:

#child.html 
{% extends 'parent.html' %} 

{% block head %} 
Child head 
{% endblock %} 

{% block body %} 
    {% include 'include.html' %} 
{% endblock %} 

如果要定义在两个child.html和include.html一些HTML,那么你应该有:

#child.html 
{% extends 'parent.html' %} 

.... 

{% block body %} 
    {% include 'include.html' %} 
    some child html... 
{% endblock %} 

在include.html:

{% block body %} 
    {{ block.super }} 
    some include html... 
{% endblock %} 

这将使:

some child html 
some include html 
+0

我在考虑制作一个footer.html,它有一个{%block footer%}页脚{%endblock%},可以使用包含标记插入任意模板中的“插入”在某种程度上,免维护(每次都不需要提及哪个块)以及多用途包含。猜测用Django是不可能的。 – SiddharthaRT 2012-07-08 18:34:00

相关问题