【问题标题】:How to use Django list as a javascript variable in Django template?如何在 Django 模板中使用 Django 列表作为 javascript 变量?
【发布时间】:2012-07-22 03:25:50
【问题描述】:

我有一个名为 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 传递给以下 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在我尝试直接使用它时发生的原因

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    • @Hamish:字符串前面的“u”不是有效的 JavaScript。
    猜你喜欢
    • 2018-01-11
    • 2012-11-06
    • 2014-07-15
    • 2016-02-02
    • 1970-01-01
    • 2021-07-23
    • 2012-11-02
    • 2020-06-10
    • 2012-11-13
    相关资源
    最近更新 更多