mzu*_*mzu 1 django django-templates
我有以下场景:
base.html文件:
{% block content %}{% endblock %}
Run Code Online (Sandbox Code Playgroud)
child.html:
{% extends 'base.html' %}
{% block content %}
<p>Overriding content</p>
{% endblock %}
{% block child_block %}{% endblock %}
Run Code Online (Sandbox Code Playgroud)
child_of_child.html:
{% extends 'child.html' %}
{% block child_block %}
<p>Overriding child</p>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
在child.html中创建一个新的块child_block并让child_of_child.html扩展child.html并覆盖此块不起作用,直到我在base.html中包含child_block作为钩子.
是否无法在根模板中创建新的模板块/挂钩?如果是这样,有没有办法绕过它而不必在base.html中包含所有可能的钩子?
问题是你的child_block块不在任何地方base.html,因为它在现有块之外.渲染模板时会出现在哪里?根本没有为它定义的地方.
子模板在其他块中定义块然后由其他块填充,这是完全可以的.所以,例如:
{% extends 'base.html' %}
{% block content %}
<p>Overriding content</p>
{% block child_block %}{% endblock %}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
工作得很好,你的结果将是:
<p>Overriding content</p>
<p>Overriding child</p>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
752 次 |
| 最近记录: |