带有安全过滤器的 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 奇怪行为的主要内容,如果未能解决你的问题,请参考以下文章