我有以下场景:
基本.html:
{% block content %}{% endblock %}
孩子.html:
{% extends 'base.html' %}
{% block content %}
<p>Overriding content</p>
{% endblock %}
{% block child_block %}{% endblock %}
child_of_child.html:
{% extends 'child.html' %}
{% block child_block %}
<p>Overriding child</p>
{% endblock %}
在 child.html 中创建一个新块 child_block 并使 child_of_child.html 扩展 child.html 并覆盖此块不起作用,直到我还将 child_block 作为钩子包含在 base.html 中。
除了根模板之外,是否无法创建新的模板块/挂钩?如果是这样,有没有办法解决这个问题,而不必在 base.html 中包含所有可能的钩子?
问题是你的child_block
块不居住在任何地方base.html
,因为它位于现有块之外。渲染模板时它会出现在哪里?根本没有为其定义位置。
子模板完全可以在其他块内定义块,然后由更多子模板填充这些块。因此,例如:
{% extends 'base.html' %}
{% block content %}
<p>Overriding content</p>
{% block child_block %}{% endblock %}
{% endblock %}
工作得很好,你的结果将是:
<p>Overriding content</p>
<p>Overriding child</p>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)