Javascript 将值从django传递到google图表数据表
我试图将一个变量作为2d数组从django视图传递到javascript,以便填充GoogleCharts数据表 有人能解释一下为什么这样做吗: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)
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}};