我有两个jinja2模板,第二个扩展第一个:
<h1>Some title</h1>
{% block content %}
{% endblock %}
和
{% block content %}
content
{% endblock %}
现在我希望能够插入一个可变数量的&#34;包装&#34;在这两个模板之间,第二个模板扩展了包装器(扩展了下一个包装器)*,它扩展了第一个模板。包装器可能如下所示:
{% block content %}
<div class="wrapper">
{% block content %}
{% endblock %}
</div>
{% endblock %}
我希望这会导致以下呈现的HTML:
<h1>Some title</h1>
<div class="wrapper">
content
</div>
不幸的是,上面的包装模板在jinja2中无效,因为块不会像这样工作。那么有没有办法在jinja2做我想做的事情?如果不是:是否有其他模板引擎能够使用它?
(请注意,重命名内部块不会,因为我需要能够添加变量数量的包装器。)
答案 0 :(得分:0)
您需要为您的块提供唯一的名称。您的问题显然是content
阻止两次使用的结果。
答案 1 :(得分:0)
{% block content %}
<div class="wrapper">
{{ super() }}
</div>
{% endblock %}
来自Jinja2 docs:
可以通过调用super来呈现父块的内容。这会返回父块的结果: