将字典从视图传递到模板时如何处理撇号?
How to deal with apostrophe when passing dicts from view to template?
我正在尝试将一些字典从视图传递到模板中的 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 时,我得到了这个错误:
很明显,撇号有问题,那么我该如何转移字典呢?
注意:当我直接在 javascript
中复制+粘贴字典时,这会起作用
您需要先将字典转换为 JSON:
json.dumps(node_result))
然后在您的模板中关闭自动转义:
{% autoescape off %}
var nodes = {{node_result}};
var links = {{edge_result}};
{% endautoescape %}
你也可以这样做:
var nodes = {{ node_result|safe }};
var links = {{ edge_result|safe }};
文档https://docs.djangoproject.com/en/1.8/ref/templates/builtins/
我正在尝试将一些字典从视图传递到模板中的 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 时,我得到了这个错误:
很明显,撇号有问题,那么我该如何转移字典呢?
注意:当我直接在 javascript
中复制+粘贴字典时,这会起作用您需要先将字典转换为 JSON:
json.dumps(node_result))
然后在您的模板中关闭自动转义:
{% autoescape off %}
var nodes = {{node_result}};
var links = {{edge_result}};
{% endautoescape %}
你也可以这样做:
var nodes = {{ node_result|safe }};
var links = {{ edge_result|safe }};
文档https://docs.djangoproject.com/en/1.8/ref/templates/builtins/