Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么“所有”都转换为&39;在djnago模板中?_Javascript_Django_Django Templates - Fatal编程技术网

Javascript 为什么“所有”都转换为&39;在djnago模板中?

Javascript 为什么“所有”都转换为&39;在djnago模板中?,javascript,django,django-templates,Javascript,Django,Django Templates,我正试图将一些数据从django视图传递到django模板,我想将这些数据保存到javascript变量中,但是发生了一些奇怪的事情。 如果我在djnago控制台中查看数据,我会看到: [{'id': 1, 'shape': 'image', 'image': "{% static 'display_network/logos/Router.png' %}", 'label': 'Default gateway'}, {'id': 2, 'shape': 'image', 'image': "{

我正试图将一些数据从django视图传递到django模板,我想将这些数据保存到javascript变量中,但是发生了一些奇怪的事情。 如果我在djnago控制台中查看数据,我会看到:

[{'id': 1, 'shape': 'image', 'image': "{% static 'display_network/logos/Router.png' %}", 'label': 'Default gateway'}, {'id': 2, 'shape': 'image', 'image': "{% static 'display_network/logos/VM.png' %}", 'label': 'VM2'}, {'id': 3, 'shape': 'image', 'image': "{% static 'display_network/logos/VM.png' %}", 'label': 'VM3'}, {'id': 4, 'shape': 'image', 'image': "{% static 'display_network/logos/VM.png' %}", 'label': 'VM4'}, {'id': 5, 'shape': 'image', 'image': "{% static 'display_network/logos/VM.png' %}", 'label': 'VM5'}]
但当我将数据保存到javascript变量并在控制台中打印时,我得到了奇怪的结果:

[{'id': 1, 'shape': 'image', 'image': "{% static 'display_network/logos/Router.png' %}", 'label': 'Default gateway'}, {'id': 2, 'shape': 'image', 'image': "{% static 'display_network/logos/VM.png' %}", 'label': 'VM2'}, {'id': 3, 'shape': 'image', 'image': "{% static 'display_network/logos/VM.png' %}", 'label': 'VM3'}, {'id': 4, 'shape': 'image', 'image': "{% static 'display_network/logos/VM.png' %}", 'label': 'VM4'}, {'id': 5, 'shape': 'image', 'image': "{% static 'display_network/logos/VM.png' %}", 'label': 'VM5'}]
我的“js”代码:

var devices = "{{ devices }}";        
console.log(devices);

“全部”转换为&39;我也不知道他们为什么会皈依。您知道如何解决这个问题吗?

您需要将其标记为安全的自动转义,然后从字符串解析

var devices = JSON.parse("{{ devices|safe }}");

您是否尝试使用str.normalize.replace;控制台可以很好地处理原始设备对象的日志记录,无需将其转换为字符串。但是,如果您确实需要字符串,请尝试JSON.stringifydevicesDjango假设它正在创建HTML,而不是JavaScript,因此它正在编码特殊字符。如果可以,请将单引号转义,这将阻止编码[{'id\':1,\'shape\':\'image\',\'image\':{%static\'display\u network/logos/Router.png\'%},\'label\':'Default gateway\},{'id\':2,\'shape\':\'image\',\'image\':{%static\'display\'U network/logos/VM.png\'%},\'label\':'VM2\',{'id\':3,\'shape\':\'image\','image\':{%static\'display U network logos/VM.png\'%},\'label\'VM3\',{'id\':4,\'shape\'shape\':'image\':'image\':{%static\'logos/vmu.png\',{'id\':5,\'shape\':\'image\',\'image\':{%static\'display\u network/logos/VM.png\'%},\'label\':\'VM5\'}]