django如何 渲染原始html字符串?

    <div class="question fmt" data-id="{{ quest_data.id }}">
        
        <td class="t_msgfont" id="postmessage_6767">xxxxxx,</td>
        <br>
        {{ quest_data.data }}

    </div>

我准备渲染 一个源html数据, <td class="t_msgfont" id="postmessage_6767">xxxxxx,</td> 这种。
但是直接 {{ quest_data.data }} 后,网页上显示不对。

clipboard.png

审查元素后发现。前后被加上了双引号。

clipboard.png

求高手看看,这个怎么解决呢?

阅读 4.5k
2 个回答

找到了答案。。

<p>这行代表会被自动转义</p>: {{ data }}
<p>这行代表不会被自动转义</p>: {{ data|safe }}
其中第二行我们关闭了Django的自动转义。
我们还可以通过{%autoescape off%}的方式关闭整段代码的自动转义,比如下面这样:

{% autoescape off %}

Hello {{ name }}

{% endautoescape %}

你需要加safe,才能正确渲染

<div class="question fmt" data-id="{{ quest_data.id }}">
        
        <td class="t_msgfont" id="postmessage_6767">xxxxxx,</td>
        <br>
        {{ quest_data.data | safe }}
</div>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题