Python Flask Jinja - 扩展模板时扩展/渲染模板

时间:2015-08-30 12:15:58

标签: templates inheritance flask jinja2

假设我们有布局模板“layout.html”,其中定义了content块。

<html> {% block content %} {% endblock %} </html>

然后,我们创建了另一个扩展此布局的模板“somePage.html”。

{% extends "layout.html" %}
    {% block content %}
        <div> Anything </div>
    {% endblock %} 

我需要再次Anything扩展另一个模板。 E.g。

{% extends "layout.html" %}
    {% block content %}
        <div> {% extends "anotherTemplate.html" %}</div>
    {% endblock %} 

虽然在这样做时,我收到错误说

  

TemplateAssertionError:不能使用非顶级范围的扩展

我该如何解决这个问题?如果您之前遇到类似情况,请分享。谢谢!

1 个答案:

答案 0 :(得分:1)

如果您将代码更改为:

{% extends "layout.html" %}
{% block content %}
    {{ super() }}
    <div>More html</div>
{% endblock %}

您将获得以下html:

<div>More html</div>
<div> Anything </div>