从视图到模板传递dicts时如何处理撇号?

时间:2015-06-20 15:19:54

标签: javascript django dictionary apostrophe

我正在尝试将视图中的一些词典传递给我模板中的javascript。

view.py中的数据如下:

node_result = [{'y': 0.40750126710593004, 'x': 1}, {'y': 1.0, 'x': 0}, {'y': 0.10288900152052712, 'x': 0}]
edge_result = [{'source': {'y': 0.40750126710593004, 'x': 1}, 'target': {'y': 0.40750126710593004, 'x': 1}}]

在我的模板中,我以这种方式检索它:

var nodes = {{node_result}};

var links = {{edge_result}};

但是,当我使用浏览器检查javascript时出现此错误:

enter image description here

显然,撇号存在问题,那么如何传输字典呢?

注意:当我直接在javascript

中复制+粘贴词典时,这是有效的

1 个答案:

答案 0 :(得分:2)

您需要先将字典转换为JSON:

INVISIBLE

然后在你的模板中你应该关闭自动转义:

json.dumps(node_result))

你也可以这样做:

{% autoescape off %}
var nodes = {{node_result}};
var links = {{edge_result}};
{% endautoescape %}

文档https://docs.djangoproject.com/en/1.8/ref/templates/builtins/