Django 将数据传递到 Google 图表

Django passing data into Google Charts

我在 views.py 中有如下视图。我正在按照图表中的要求传递数据

def home(request): 

     posts = [['day', 'ic'], ['Fri', 3601326.0], ['Mon', 1450340.0], ['Sat', 2094946.0], ['Sun', 2373750.0], ['Thu', 3116066.0], ['Tue', 729403.0], ['Wed', 1934780.0]]
     return render(request, 'kodey/home.html', {'data': posts})

在 HTML 中,我有以下内容,但该图表未显示。如果我在文档中传递相同的数据,它就会这样做,所以我有点困惑,

谁能帮帮我?

谢谢

<script type="text/javascript">

    google.charts.load('current', {packages: ['corechart', 'bar']});
google.charts.setOnLoadCallback(drawBasic);

function drawBasic() {

      var data2 = google.visualization.arrayToDataTable(
              {{ data }}              
      );

      var options = {
            chartArea: {
        left: 50,
        top: 5,
        right: 5,
        bottom: 50,
        width: 500,
        height: 300
    },
        hAxis: {
          title: 'Average Interactions',
          minValue: 0
        },

      };

      var days = new google.visualization.BarChart(document.getElementById('days_div'));

      days.draw(data2, options);
}</script>

这不是有效的 JSON blob。您可以将其转换为 json blob,例如 json.dumps(…) [Django-doc]:

import json

def home(request): 
     posts = [['day', 'ic'], ['Fri', 3601326.0], ['Mon', 1450340.0], ['Sat', 2094946.0], ['Sun', 2373750.0], ['Thu', 3116066.0], ['Tue', 729403.0], ['Wed', 1934780.0]]
     return render(request, 'kodey/home.html', {'data': <b>json.dumps(</b>posts<b>)</b>})

在模板中,然后您可以添加带有 |safe template filter 的 JSON blob 以避免 HTML 转义它:

var data2 = google.visualization.arrayToDataTable(
    {{ data<b>|safe</b> }}              
);