假设我有这个字符串:
s = '<p>Hello!</p>'
当我将此变量传递给模板时,我希望它呈现为原始html。查看文档,我看到我可以使用安全过滤器:
{{s|safe}}
或禁用autoescape:
{%autoescape off}
{{s}}
{%endautoescape%}
或在python代码中声明它是安全的:
from django.utils.safestring import mark_safe
s = mark_safe(s)
这些选项都不适用于我。无论我做什么,字符串显示为:
<p>Hello!</p>
我一定是在遗漏一些东西,只是弄不清楚是什么。是否存在一些不允许逃避的安全设置?
编辑:奇怪,重新启动电脑后问题似乎消失了。答案 0 :(得分:6)
我认为你应该写如下
{{s|escape|safe}}
对我来说没关系
答案 1 :(得分:2)
你几乎已经覆盖了它,这些确实是禁用自动转换的所有方法。
您确定您所谈论的价值实际上是s = '<p>Hello!</p>'
吗?
我的预感是你在那个字符串的某个地方有额外的逃避......
答案 2 :(得分:-4)
看看HTML源代码,它是否被转义!???我不这么认为。它应该是逐个字母打印,就像这样:
<
p
>
H
E
L
L
O
<
/
>