Django视图返回在html模板中未正确表示的字符串

时间:2009-04-27 16:17:17

标签: django templates view

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

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

并在html模板中显示如下:

& quot;Foo bar& quot;

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

2 个答案:

答案 0 :(得分:12)

打印时使用safe filter

{{ test|safe }}

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

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

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

答案 1 :(得分:0)

您最好的选择是参考Django文档,该文档详细解释了这一点:

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