Django模板包含/扩展子目录

Django模板包含/扩展子目录,django,django-templates,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
|- 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
指令在任何模板的当前目录中进行计算。

我不知道是否正确获得了所有内容,但是我想你必须用一个
包含在内

basic.html:

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

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

如果您没有覆盖
page.html中的导航块
应该使用原始的include…

这似乎是可行的,但关键是,我不希望page.html必须覆盖
块导航
,除非它需要在那里显示不同的数据。覆盖块有什么不好的地方?这似乎不起作用-问题是
include
指令在page.html的当前目录中进行计算,而不是定义块的位置。您能否评论一下为什么要删除folder1/nav.html?如果要删除basic.html中包含的文件,您似乎只需要修复basic.html。当然,我知道你有自己的情况,但我将是那个说可能有不同方法的人。看起来唯一的方法是直接将nav.html的内容包含在basic.html中,这是可行的,但我更愿意将其分开——当然,纯粹是美学上的原因。