【发布时间】:2011-09-12 03:54:31
【问题描述】:
我的 Django 过滤器没有做正确的事情。我希望在输出中看到实际的 html,但我看到的是 html 转义括号。我试过关闭自动转义,我试过|安全,我同时试过两者。没有喜悦。怎么回事?
<td>{% autoescape off %}{{ notif.output|safe|insert_breaks|linkify }}{% endautoescape %}</td>
我没有看到任何错误,只是真正不应该转义的自动转义文本。
【问题讨论】:
-
也许您的自定义模板过滤器的更多信息(代码)?
-
insert_breaks 真的像 text = text.replace('\n', '
')...和 & lt;在输出中。 -
您可以尝试在所有其他过滤器(
insert_breaks和linkify)之后添加|safe吗?据我所知,过滤器是链式的。来自 Django 文档:“如果您正在链接过滤器,则在安全之后应用的过滤器会使内容再次变得不安全。”。 -
我最后也尝试了安全。这是一个配置问题,因为同一主机上有多个实例。
标签: django templates filter escaping