如何在Django模板中使用Django列表作为javascript变量?

时间:2012-07-23 20:43:48

标签: javascript python django django-templates google-visualization

我有一个名为list_a的Django列表:

[['Host Name', 'No. of Events'], [u'12.23.21.23', 0], [u'2.152.0.2', 2]]

我在Django模板中使用Google Chart API。我必须将list_a paas到以下java脚本变量:

var data = google.visualization.arrayToDataTable([
    ['Host_name', 'No of events'], 
    ['12.23.21.23', 0], 
    ['2.152.0.2', 2]
    ]);

上面的内容是硬编码的,但我想以下列方式使用:

var data = google.visualization.arrayToDataTable({{list_a}});

我尝试使用上面的代码并使用chrome中提供的javascript console选项进行检查。它表明了这一点:

 var data = google.visualization.arrayToDataTable([['Host Name', 'No. of Events'], [u'12.23.21.23', 0], [u'2.152.0.2', 2]]);

我将这个上面的行与硬编码的代码进行比较,由于以下方式,它是非常不同的:

'
['12.23.21.23', 0]  See the quotes on ip address field but not to the next field

我应该如何使list_a等同于硬编码,以便我可以轻松获得所需的图表。

除此之外为什么当我试图直接使用它时发生&#39

我正在使用Google图表的https://google-developers.appspot.com/chart/interactive/docs/gallery/combochart示例

1 个答案:

答案 0 :(得分:4)

将其编码为JSON,将其标记为安全,然后将其打印出来。

var data = google.visualization.arrayToDataTable({{ list_a|json|safe }})

不幸的是,您需要编写或查找json过滤器,或在视图中将其编码为JSON。