3

我一直在尝试这样做:

{% set error_message = '<span class="help-inline">' + field.errors[0]|e + '</span>' %}
{# ... code ... #}
{{ error_message|safe }}

尝试在 html 中获取此输出:

<span class="help-inline">Some message</span>'

但是,html 被转义了,我将上面的内容打印为字符串。

safe所以问题是如何在 Jinja2中标记连接的字符串?


当前输出(萤火虫):

跨度为 html 编码的字符串

预期输出:

正确的html输出


更新:试过这个但没有用:

{% autoescape false %}
    {{ error_message|safe }}
    {# also tried without safe #}
{% endautoescape %}
4

1 回答 1

1

然而,将连接的每个部分字符串标记为safe提供所需的输出:

{% set error_message = '<span class="help-inline">'|safe + field.errors[0]|e + '</span>'|safe %}

或者稍微好一点:

{% set error_message = ('<span class="help-inline">' ~ field.errors[0]|e ~ '</span>')|safe %}

safe(用于连接的整个字符串的组合过滤器,~而不是。+不适用于此)

于 2013-01-06T19:58:08.333 回答