Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Django与谷歌图表_Javascript_Python_Django_Google Visualization - Fatal编程技术网

Javascript Django与谷歌图表

Javascript Django与谷歌图表,javascript,python,django,google-visualization,Javascript,Python,Django,Google Visualization,我试图在我的页面上显示google图表,但我不知道如何将值从django视图传递到javascript,以便绘制图表 Django代码: array = ([ ['Year', 'Sales', 'Expenses'], ['2004', 1000, 400], ['2005', 1170, 460], ['2006', 660, 1120], ['2007', 1030, 540]

我试图在我的页面上显示google图表,但我不知道如何将值从django视图传递到javascript,以便绘制图表

Django代码:

array = ([
      ['Year', 'Sales', 'Expenses'],
      ['2004',  1000,      400],
      ['2005',  1170,      460],
      ['2006',  660,       1120],
      ['2007',  1030,      540]
    ]);
args['array']= array
return render_to_response('progress.html',args)
progres.html:

<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
  google.load("visualization", "1", {packages:["corechart"]});
  google.setOnLoadCallback(drawChart);
  function drawChart() {
    var djangoData = '{{array}}';
    var data = google.visualization.arrayToDataTable(djangoData);

    var options = {
      title: 'Company Performance'
    };

    var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
    chart.draw(data, options);
  }
</script>

load(“可视化”、“1”、{packages:[“corechart”]});
setOnLoadCallback(drawChart);
函数绘图图(){
var djangoData='{{array}}}';
var data=google.visualization.arrayToDataTable(djangoData);
变量选项={
标题:“公司业绩”
};
var chart=new google.visualization.LineChart(document.getElementById('chart_div'));
图表绘制(数据、选项);
}

这样,图表就不会显示。有什么建议吗

google.visualization.arrayToDataTable()似乎采用2D(javascript)数组。你传递的是一根线。您需要将其解析为一个数组。尝试:

var djangoData = JSON.parse('{{ array }}');
var data = google.visualization.arrayToDataTable(djangoData);

在您的视图中

删除此行
args['array']=array

将此行
return render\u to\u response('progress.html',args)
更改为
return render\u to\u response('progress.html',{'array':json.dumps(array)})

在您的模板中

更改此行
var djangoData='{{array}}'
var djangoData='{{array | safe}}}'


代码的其余部分很好。我希望这能有所帮助。

对我来说,这种组合很有效:

查看:

from django.shortcuts import render
import json

(...)
context= {'array': json.dumps(array)}
return render(request,'progress.html',context)
var djangoData = JSON.parse('{{ array | safe }}';);
模板:

from django.shortcuts import render
import json

(...)
context= {'array': json.dumps(array)}
return render(request,'progress.html',context)
var djangoData = JSON.parse('{{ array | safe }}';);