将数据从django视图传递到javascript

将数据从django视图传递到javascript,javascript,python,django,Javascript,Python,Django,我正在尝试使用vis.js库()和django(基本库-)创建一个网络。 我需要将指定网络节点的数据从django传递到javascript。 这是my views.py: def create_network(request): r=[] for i in range(1,6): d={} d['id'] = i d['label'] = 'Node ' + str(i) r.append(d) data

我正在尝试使用vis.js库()和django(基本库-)创建一个网络。 我需要将指定网络节点的数据从django传递到javascript。 这是my views.py:

def create_network(request):
    r=[]
    for i in range(1,6):
        d={}
        d['id'] = i
        d['label'] = 'Node ' + str(i)
        r.append(d)
    data = json.dumps(r)
    return render(request, 'network.html', {"nodes":data})
这是我的模板的相关部分:

  n = {{ nodes }}
  var nodes = new vis.DataSet(n);
当我运行此命令时,{{nodes}}将消失,它将变成:

  n = 
  var nodes = new vis.DataSet(n);
我得到了意想不到的令牌错误。 我对Django和javascript比较陌生,如果这看起来像是elemenatary,那么很抱歉。我该如何解决这个问题?谢谢

尝试以下操作:

 var n = `{{ nodes|safe }}`;
 var nodes = new vis.DataSet(n);

在将数据传递到
vis.DataSet
之前,您可能需要也可能不需要在数据周围添加
jQuery.parseJSON()
。我不能肯定,因为我从未使用过。

它肯定会有用。。。尝试删除缓存并重新加载…正如@RajaSimon所说,如果模板
network.html
与您提到的内容完全一致,那么您提到的代码就可以工作。尝试进一步简化您的示例并检查返回的html。此外,请尝试将
节点
键重命名为其他项,以防它保留在模板引擎中。