【问题标题】:How to set a variable in a child template in Jinja2?如何在 Jinja2 的子模板中设置变量?
【发布时间】:2019-03-31 03:54:03
【问题描述】:

This question was asked once,但它没有回答问题,所以我直接重新问了。

我正在尝试在子模板中设置一个变量,以便它改变父模板呈现事物的方式。在这个问题中,我展示了一个实际的例子。

我的网站有两种模板。一种显示内容窄和全宽的模板。

(我剪掉了所有复杂性,以便向您展示一个简单的示例)

page.html

{% extends "base.html" %}

{% block content %}
        <div id="pageContentContainer">
            <div class="row">
            {% if fullwidth %}
                <div class="col-12">fffff
                    {{super()}}
                </div>
            {% else %}
                <div class="col-9">
                    {{super()}}
                </div>
            {% endif %}
            </div>
        </div>
{% endblock %}  

page-fullwidth.html

{% extends "page.html" %}

{% block content %}
    {% set fullwidth = true %}
    {{super()}}
{% endblock %}

这不起作用。变量fullwidth在父模板中不是True。

还有其他实用的方法吗?我不想在page-fullwidth.html 中重复page.html 的内容。 (在实际中,这个文件更复杂。)

【问题讨论】:

    标签: python jinja2


    【解决方案1】:

    几乎是对的。这就是答案。变量设置器需要在块外

    page-fullwidth.html

    {% extends "page.html" %}
    
    {% set fullwidth = true %}
    
    {% block content %}
        {{super()}}
    {% endblock %}
    

    【讨论】:

      猜你喜欢
      • 2015-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-05
      • 2023-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多