【问题标题】:Applying jinja2 filters to a block?将jinja2过滤器应用于块?
【发布时间】:2012-10-26 20:46:42
【问题描述】:

是否可以将 jinja2 过滤器应用于 {% block ... %} 构造?我希望做的事情是这样的:

{% block content|upper %}
here is some content that will be rendered in upper case
{% endblock %}

...但这不起作用;上面的示例将导致错误。有没有其他方法可以在 jinja2 过滤器中包装一大块模板文本?

【问题讨论】:

    标签: python templates jinja2


    【解决方案1】:

    你可以使用filter sections:

    {% block content %}
        {% filter upper %}
            Here is some content that will be rendered in upper case.
        {% endfilter %}
    {% endblock %}
    

    【讨论】:

    • 我会反转 blockfilter。这样,模板扩展就不会覆盖过滤器。
    • 这取决于特定目的 - 将filter 嵌套到block 以允许覆盖或将block 嵌套到filter 以禁止覆盖。恕我直言,第一个变体更灵活,第二个变体只有在您确定始终需要使用定义的过滤器过滤该块时才适用。
    • 你知道,我想我今天可能已经多次盯着文档的那个部分,但没有准确地阅读它,因为我太专注于{% block ... %}?谢谢指点。
    猜你喜欢
    • 2021-04-14
    • 1970-01-01
    • 1970-01-01
    • 2016-03-05
    • 2018-06-07
    • 1970-01-01
    • 2011-11-01
    • 1970-01-01
    • 2019-03-09
    相关资源
    最近更新 更多