为什么Jinja在宏中逃脱html?

时间:2013-09-15 11:17:31

标签: html django macros escaping jinja2

我正在编写一个Jinja宏来在模板中呈现一些表单数据,但由于某种原因,表单数据呈现为转义文本而不是html!这是我的宏,表格的第一行叫做:

{% macro formrow(field) %}
    <tr>
        <td>form.{{ field }}.label|safe</td>
        <td>form.{{ field }}|safe</td>
        <td>form.{{ field }}.help_text|safe</td>
        <td>form.{{ field }}.errors|safe</td>
    </tr>
{% endmacro %}

{{ formrow('item_name') }}

想法?我错过了什么?

1 个答案:

答案 0 :(得分:1)

看来你还没有完全获得Jinja模板语法,不管怎样,我建议做这样的事情:

{% macro formrow(field) %}
    <tr>
        <td>form.{{ field.label_tag() }}</td>
        <td>form.{{ field.as_widget() }}</td>
        <td>form.{{ field.help_text|safe }}</td>
        <td>form.{{ field.errors.as_ul() }}</td>
    </tr>
{% endmacro %}

{{ formrow('item_name') }}