我一直在尝试这样做:
{% 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 被转义了,我将上面的内容打印为字符串。
所以问题是如何在 Jinja2 中将连接的字符串标记为 safe
?
当前输出( Firebug ):
预期输出:
更新:试过但没有用:
{% autoescape false %}
{{ error_message|safe }}
{# also tried without safe #}
{% endautoescape %}
最佳答案
将连接的每个 部分字符串 标记为 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
过滤器代替。+
对此不起作用)
关于python - 将安全过滤器应用于连接的 html 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14185967/