Javascript 将值从django传递到google图表数据表

Javascript 将值从django传递到google图表数据表,javascript,python,django,Javascript,Python,Django,我试图将一个变量作为2d数组从django视图传递到javascript,以便填充GoogleCharts数据表 有人能解释一下为什么这样做吗: var data=new google.visualization.arrayToDataTable([[1,2,3], [4,5,6]]) 但这并不是: foo = [[1,2,3], [4,5,6]] foo = json.dumps(foo)

我试图将一个变量作为2d数组从django视图传递到javascript,以便填充GoogleCharts数据表

有人能解释一下为什么这样做吗:

var data=new google.visualization.arrayToDataTable([[1,2,3],
                                                    [4,5,6]])
但这并不是:

foo = [[1,2,3], [4,5,6]]
foo = json.dumps(foo) # the foo stuff is in the django view. i'm just trying to be clear as to what foo is.

var data=new google.visualization.arrayToDataTable({{ foo|safe }})# i've tried this with quotes and without safe. both as json and not. 
我试过:

foo = [json.dumps(i) for i in foo]
我根本没有尝试过json。我试过传递numpy数组,元组。我尝试使用
data.addRows
填充DateTable,并尝试迭代并使用
data.addRow
。还有100件其他的东西

我显然错过了一些重要的事情,因为我所做的一切都不管用

为什么当我硬编码DataTable的数据时它能工作,但当我试图从django视图传递相同的数据时它失败了


如果有任何帮助,我将不胜感激,因为我的谷歌链接已经没有希望了。

根据我的经验,下面的例子应该可以

<script type="text/javascript">
  google.load("visualization", "1", {packages:["corechart"]});
  google.setOnLoadCallback(drawChart);
  function drawChart() {
    var djangodata = {{djangodict|safe}};
    var data = google.visualization.arrayToDataTable();
    var options = {
        title: 'My Daily Activities'
        };
    var chart = new google.visualization.PieChart(document.getElementById('piechart'));
    chart.draw(data, options);
  }
如果您正在为该图表单独创建模板,那么这应该可以正常工作。但是,在脚本中声明如上所示的django变量非常重要

var djangodata = {{djangodict|safe}};
如果您不:-(

我所做的与上面的解决方案不同,我实际上创建了一个templatetag,将数据变量传递给上面的javascript,并让它根据我的需要绘制图表。 只是因为我想在仪表板页面上包含我的图表,这样做很好

var djangodata = {{djangodict|safe}};