在javascript中访问python字典
我需要访问django模板中javascript中的字典country_stat。我正在使用GoogleCharts api,其中包含此javascript代码。下面的代码运行良好,可以打印一张整洁的地图。但这些值是静态的在javascript中访问python字典,javascript,django,django-templates,Javascript,Django,Django Templates,我需要访问django模板中javascript中的字典country_stat。我正在使用GoogleCharts api,其中包含此javascript代码。下面的代码运行良好,可以打印一张整洁的地图。但这些值是静态的 function drawRegionsMap() { var data = google.visualization.arrayToDataTable([ ['Country', 'Popularity'], ['Germany', 2], ['
function drawRegionsMap() {
var data = google.visualization.arrayToDataTable([
['Country', 'Popularity'],
['Germany', 2],
['United States', 3],
['Brazil', 4],
['Canada', 5],
['France', 6],
['RU', 7]
]);
在内容块中打印国家统计信息成功
{% for key, value in country_stat.items %}
{{key}}, {{value}}
{% endfor %}
印刷品
India, 2 Russia, 1
但是我不知道如何将其插入到javascript代码中。通过AJAX请求数据,或者从模板中在javascript中插入文本JSON-在视图中设置上下文变量:
import simplejson as json
context['thingy_json'] = json.dumps(thingy)
然后将该变量包括在模板中:
<script>
var data = {{ thingy_json }};
</script>
通过AJAX请求数据,或者从模板中在JavaScript中插入文本JSON-在视图中设置上下文变量:
import simplejson as json
context['thingy_json'] = json.dumps(thingy)
然后将该变量包括在模板中:
<script>
var data = {{ thingy_json }};
</script>
事实上解决了
var data = google.visualization.arrayToDataTable([
['Country', 'Popularity'],
{% for key, value in country_stat.items %}
['{{key}}', {{value}}],
{% endfor %}
]);
这个问题很愚蠢——我错过了{{key}}周围的单引号,实际上解决了这个问题
var data = google.visualization.arrayToDataTable([
['Country', 'Popularity'],
{% for key, value in country_stat.items %}
['{{key}}', {{value}}],
{% endfor %}
]);
这个问题很愚蠢-我错过了{{key}}周围的单引号,您是否考虑过使用django将数据作为json发送给您?这样,您就不必担心将js代码模板化。应该有一种更简单的方法。您是否考虑过使用django将数据作为json发送给您?这样,您就不必担心将js代码模板化。应该有一种更简单的方法。你不必用javascript构建数组,只需将JSON从django传递到javascript即可。虽然它可能适用于你的特定数据集,但你不想这样做。数据中的任何单引号都将破坏您的应用程序。反睫毛会导致奇怪的行为。请参阅Amadan的答案,了解如何干净、省力地完成此操作。您不必用javascript构建数组,只需将JSON从django传递到javascript即可。虽然它可能适用于您的特定数据集,但您不想这样做。数据中的任何单引号都将破坏您的应用程序。反睫毛会导致奇怪的行为。请参阅Amadan的答案,了解如何干净、省力地完成此任务。