带有安全过滤器的 Django 奇怪行为

Posted

技术标签:

【中文标题】带有安全过滤器的 Django 奇怪行为【英文标题】:django weird behavior with safe filter 【发布时间】:2014-12-01 11:32:48 【问题描述】:

首先看这段代码:

...
<p class="entry-content"> entry.content|safe </p>
...

问题是它呈现如下:

...
<p class="entry-content"></p>
 entry.content|safe 
...

但是,当我使用 div 标签而不是 p 时,一切正常。

为什么会发生这种情况?有没有办法在没有 javascript 的情况下解决它?

编辑:当 entry.content 具有像div 这样的块标签时会出现问题。 EDIT2:在控制台中一切正常。该问题仅出现在浏览器中。

【问题讨论】:

我认为这是一个 html 问题(打开/关闭标签不匹配),与其说是 django 问题,请将您的 entry.content 添加到帖子中 @HeddevanderHeide 没有安全过滤器,它显示正常。我之前用 JavaScript 修复过。 所以请直接从页面源添加不正确的html sn-p 【参考方案1】:

我想我明白了。 原来p标签不能包含块元素。 我在这里找到它:Python lxml changes tag hierarchy?

解决方案是使用div 而不是p,一切都会好起来的。

【讨论】:

以上是关于带有安全过滤器的 Django 奇怪行为的主要内容,如果未能解决你的问题,请参考以下文章

奇怪的 Java Servlet 过滤器映射行为

Django 上 Count 函数的不同行为

django trans 标签内的过滤器:首先翻译然后应用过滤器;不像其他标签

在 Django 查询集上使用 iterator()

多个反应过滤器和更新选择输入的问题 - 奇怪的行为

关于ManyToMany过滤和组合查询集的非常奇怪的行为