首页 > 解决方案 > SyntaxError: 预期的表达式,得到 '&' (Django)

问题描述

我有一个以 Django 为后端的分析仪表板。在 Python 中分析数据后,我将发送一个带有名称和显着性的字典。

var things_mentioned = {{entity.name}};
var things_salience = {{entity.salience}};

这会产生错误: SyntaxError: expected expression, got '&'

下面的代码不会产生任何错误并且可以完美运行:

var things_mentioned = ['noodles', 'food', 'Chinese', 'flavor', 'umami flavor'];
var things_salience = {{entity.salience}};

当我尝试{{entity.name}}在纯 HTML 页面中查看值时,它会准确显示这个

['面条','食物','中国','风味','鲜味']。

此外,我的整个程序中没有一个“&”。

标签: javascriptpythonhtmldjango

解决方案


它将尝试对字符串进行 HTML 转义。您可以使用 JavaScript 转义。最安全的方法可能是使用|json_script模板过滤器 [Django-do]。因此,您可以将其用作:

{{ entity.name|json_script:"things_mentioned" }}
var things_mentioned = JSON.parse(document.getElementById('things_mentioned').textContent);

推荐阅读