Django将HTML对象作为纯文本传递到模板中

Chr*_* B. 1 html django dom zinnia

这似乎是一个很愚蠢的问题,但是我对博客创建模块django-zinnia的行为感到困惑。

当我测试输入纯文本帖子时,它会在每个句子后面附加html <p>标签,而浏览器不会将其标记为html。

例如,如果我将其输入数据库(无html):

django管理员

来自db的条目本身在页面上呈现,就像<p>标记是纯文本一样:

页

在此处输入图片说明

在Zinnia中,这些html标签是作为_entry_detail_base.html中{{object_content}}对象的一部分生成的

<div class="entry-content">
     {{ object_content }}
</div>
Run Code Online (Sandbox Code Playgroud)

我已经查看了百日草(Zinnia)中的entry.py模型,但无法确定这些标签的来源或传递方式,但浏览器无法解释它们的含义(html) 。我可以应用一个可以解决此问题的过滤器吗?谢谢

knb*_*nbk 5

这是Django模板的默认行为。使用{{ object_content|safe }}{% autoescape off %} {{ object_content }} {% endautoescape %}(用于多个变量)防止html实体被转义。

请注意,使用safe过滤器并不会自动意味着如果在其后使用另一个过滤器,则不会对输出进行转义。