无法在Django上下文中传递json

deltaskelta

我有一些这样的代码。

def foobar():
    foo = [" 1", " 2", " 3"]
    context['json'] = json.dumps(foo)
    print context['json']
    return render_to_string('template', context)

我得到的是我认为正确的打印在终端上的...

[" 1", " 2", " 3"]

但是然后在我的JavaScript控制台中,我得到了错误 (index):59 Uncaught SyntaxError: Unexpected token ;

当我去那里的时候,我看到了...

[\u0022 1\u0022, \u0022 2\u0022, \u0022 3\u0022]

因此,我可以看到它正在某处转向unicode,然后没有被转换回去,而是IDK怎么做。

在我的模板中(在<script>标签中),我正在这样做:

var data = {
    labels: {{ labels|escapejs }}
    datasets: []
}
e4c5

由于您尝试通过django模板将数组的json表示形式传递给JavaScript,因此不应该使用escapejs!应该是

labels: {{ labels }}

请注意,在您的视图中,您使用的是变量名,json而在模板中,您使用的是labels我认为这是一个错字

如果您在报价方面遇到麻烦,

{% autoescape off %}{{ labels }}{% endautoescape %}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章