Javascript 为什么“所有”都转换为&39;在djnago模板中?
我正试图将一些数据从django视图传递到django模板,我想将这些数据保存到javascript变量中,但是发生了一些奇怪的事情。 如果我在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': "{
[{'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\'}]