Django - 将python数据传递给javascript

时间:2018-01-31 06:47:42

标签: javascript python django vis.js

我的js.html中有一个javascript代码:

{% load static %}
<script src="{% static  "vis.js" %}"></script>

<div id="mynetwork"></div>
<script type="text/javascript">

  var nodes = new vis.DataSet([
    {'id': 1, 'label': 'node 1'},
    {'id': 2, 'label': 'node 2'},
    {'id': 3, 'label': 'node 3'},
    {'id': 4, 'label': 'node 4'},
    {'id': 5, 'label': 'node 5'}
  ]);

  var edges = new vis.DataSet([
    {'from': 1, 'to': 3},
    {'from': 1, 'to': 2},
    {'from': 2, 'to': 4},
    {'from': 2, 'to': 5},
    {'from': 3, 'to': 3}
  ]);

  var container = document.getElementById('mynetwork');
  var data = {
    nodes: nodes,
    edges: edges
  };
  var options = {};
  var network = new vis.Network(container, data, options);
</script>

我有一个名为nodesJS的python变量,它在打印时采用这种形式:

[{'id': 1, 'label': 'node 1'},
    {'id': 2, 'label': 'node 2'},
    {'id': 3, 'label': 'node 3'},
    {'id': 4, 'label': 'node 4'},
    {'id': 5, 'label': 'node 5'} ]

这与此javascript将使用的形式相同。在我的views.py中,我只是在上下文中传递nodesJS变量。现在我想用这种风格编写我的js代码:

var nodes = new vis.DataSet({{nodesJS}});

问题在于它不起作用。有没有办法让js处理我希望它的python变量?

1 个答案:

答案 0 :(得分:1)

您可以使用safe代码 - {{ nodeJS|safe }}

  

[Safe]将字符串标记为在输出之前不需要进一步的HTML转义。