html - 为什么 Jinja 在宏中转义 html?

标签 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') }}

想法?我错过了什么?

最佳答案

看来你还没有完全掌握 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/

相关文章:

javascript - Jquery 可点击调整大小动画。最大化 div

html - 什么是 HTTP 'method' 大写最佳实践?

Django REST Framework 可浏览的 api 过滤器控件未显示

macros - Clojure可以通过宏生成函数吗?

条件 C 预处理器指令

javascript - 根据屏幕大小自动调整图像大小

html - 如何在 ClinkPaget yii 中的 <a></a> 之间添加标签 <span>

python - 迁移 Django 1.1.1 -> 1.2.1 : {% url %} doesn't work

python - Django Web 项目中用户提供的 CSV

javascript - 使用 JavaScript 填写表单