我正在编写一个 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') }}
想法?我错过了什么?
最佳答案
看来你还没有完全掌握 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') }}
关于html - 为什么 Jinja 在宏中转义 html?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18811748/