4

我正在使用的视图将字符串返回到 html 模板。返回的字符串包含在模板中未正确表示的特殊字符。简单地说,从视图返回的字符串可能如下所示:

test = "\"Foo bar\""
return render_to_response('index.html', {'test': test})

并显示在 html 模板中,如下所示:

& quot;Foo bar& quot;

如何修复编码以便正确显示?

4

2 回答 2

12

打印时使用安全过滤器:

{{ test|safe }}

或者,在视图中执行此操作:

from django.utils.safestring import mark_safe
test = mark_safe("\"Foo bar\"")

请注意,这样做是在告诉 Django,字符串的内容是安全的,不需要 HTML 转义。如果您打算放置任何可能来自用户的内容,那么这将使您容易受到 XSS 攻击,因此请谨慎使用。

于 2009-04-27T16:20:08.573 回答
0

最好的办法是查阅 Django 文档,其中详细解释了这一点:

https://docs.djangoproject.com/en/2.0/ref/templates/language/#automatic-html-escaping

于 2009-04-28T07:14:53.900 回答