这感觉就像一个非常愚蠢的问题,但我对博客创建模块django-zinnia的行为感到困惑。
当我测试输入纯文本帖子时,它会在每个句子中添加html< p>标签浏览器不读取为html。
例如,如果我将其输入数据库(没有html):
db中的条目在页面本身上呈现,就好像< p>标记是纯文本:
在Zinnia中,这些html标记是作为_entry_detail_base.html
中{{object_content}}对象的一部分生成的<div class="entry-content">
{{ object_content }}
</div>
我查看了Zinnia中的entry.py模型,我无法确定这些标记的来源或者它们是如何以浏览器不解释它们的方式传入的(HTML)。是否有可以应用的过滤器可以解决这个问题?感谢
答案 0 :(得分:3)
这是Django模板的默认行为。使用{{ object_content|safe }}
或{% autoescape off %} {{ object_content }} {% endautoescape %}
(对于多个变量)可以防止html实体被转义。
请注意,使用safe
过滤器并不意味着如果您在其后使用其他过滤器,则不会转义输出。
答案 1 :(得分:0)
它正在使用|safe
模板标记:
<div class="entry-content">
{{ object_content|safe }}
</div>