【问题标题】:Python Flask Jinja - extend/render template when extend a templatePython Flask Jinja - 扩展模板时扩展/渲染模板
【发布时间】:2015-11-24 14:46:50
【问题描述】:

假设我们有定义 content 块的布局模板“layout.html”。

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

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

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

我需要Anything 再次扩展另一个模板。例如

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

虽然这样做时,我收到错误提示

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

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

【问题讨论】:

  • 看看它是否有效...在内部扩展中添加content block...
  • 这将改变当前页面的模板关系。不可能@SurajPalwe
  • 你真的应该看看这个问题stackoverflow.com/questions/1976651/…
  • 你找到答案了吗,因为我也需要解决这个问题

标签: templates inheritance flask jinja2


【解决方案1】:

如果你把代码改成这样:

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

你会得到以下html:

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

【讨论】:

    猜你喜欢
    • 2015-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多