渲染像(')这样的字符,使其成为原生HTML特殊字符

时间:2014-08-28 22:14:50

标签: python html django django-templates

我通过渲染将广告系列数据传递到我的模板,如下所示:

return render(request, self.template_name, {'campaigns': campaigns})

现在没关系,除了有时{{campaign.name}}是一个看起来像这个

的字符串
'David's Campaign'

但是有时候因为我使用的是'而被javascript搞乱了,所以字符串可以缩短,不可避免地使它像'David'

我的问题是,如何通过原生HTML或具有不会混淆javascript的特殊字符值的东西?

2 个答案:

答案 0 :(得分:1)

您可以使用markupsafe

import markupsafe
markupsafe.escape("My foo's are also bars")  # Markup(u'My foo's are also bars')

标记对象有__html__方法,大多数模板语言似乎都知道如何使用(我认为django包含在其中,但我自己从未使用过) - 所以你应该能够通过它通常会传递一个字符串。

答案 1 :(得分:1)

Encode it as JSON.

var campaign = {{campaign|jsonify}}