Django模板包含/扩展子目录

时间:2010-12-07 16:30:51

标签: django django-templates

考虑以下目录:

|- basic.html
|- nav.html
|- folder1/
|- |- page.html
\- \- nav.html

page.html扩展了../basic.html,其中包含nav.html

在这种情况下,它包含folder1/nav.html。如果我删除folder1/nav.html则不包含。我该如何解决?我可以将nav.html内联到basic.html,但可能会出现我想让basic.html做一些包含的情况。

编辑:我们的想法是,继承basic.html的任何东西都会得到顶级的nav.html模板,但似乎并非如此,因为include nav.html指令在当前目录中进行评估无论什么模板。

1 个答案:

答案 0 :(得分:1)

我不知道我是否能正确使用所有内容,但我认为您必须将includeblock括起来?

basic.html:

...
{% block navigation %}
{% include "nav.html" %}
{% endblock %}

page.html中:

{% extends "../basic.html" %}
{% block navigation %}
{% include "folder1/nav.html" %}
{% endblock %}

如果您没有覆盖page.html中的导航块,则应使用原始包含...