3

ページに Google チャートを表示しようとしていますが、django ビューから JavaScript に値を渡す方法がわからないため、チャートを描画できます。

ジャンゴコード:

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>

この方法では、チャートは表示されません。助言がありますか ?

4

3 に答える 3

2

google.visualization.arrayToDataTable() は 2D (javascript) 配列を取るようです。渡すのは文字列です。それを配列に解析する必要があります。試す:

var djangoData = JSON.parse('{{ array }}');
var data = google.visualization.arrayToDataTable(djangoData);
于 2013-07-18T13:15:34.687 に答える
0

私にとって、この組み合わせは機能します:

見る:

from django.shortcuts import render
import json

(...)
context= {'array': json.dumps(array)}
return render(request,'progress.html',context)

テンプレート:

var djangoData = JSON.parse('{{ array | safe }}';);
于 2018-10-01T13:33:10.800 に答える