Django - 在模型中存储未转义的HTML

11 投票
1 回答
6667 浏览
提问于 2025-04-15 18:28

我想在我的Django模型中存储原始的、未经转义的HTML,以便在我的主页上显示。但是,当我把它存储在TextField里时,它被转义了,结果只显示成了普通文本。我该怎么做才能在Django模型中存储原始HTML呢?

** 编辑 **

看起来问题不是出在模型层,而是在模板层。有没有什么特殊的标签我应该使用?我在命令行里检查过这个值,它是正常的,但不知为什么当我在模板中使用{{ block.html }}(html是存储实际HTML的block对象的属性)时,结果却是这样:

<p>This is a <strong>very</strong> <em>important</em> <span style="text-decoration: underline;">block</span></p>
<p style="padding-left: 30px;">it has very significant content!</p>

1 个回答

17

你可以使用 safe 过滤器来显示不经过转义的文本,也可以使用 escape 过滤器来显示经过转义的文本。此外,你还可以使用 autoescape 标签来设置一个区域。比如可以用 {% autoescape on %} 来开启转义,或者用 {% autoescape off %} 来关闭转义。

撰写回答