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 はエスケープされ、上記が文字列として出力されます。

質問は、連結された文字列をsafeJinja2 のようにマークする方法ですか?


現在の出力 (firebug):

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 に答える