Как вернуть два списка в chartjs из Django View - PullRequest
0 голосов
/ 12 июня 2019

Я использую chartjs для визуализации диаграммы.Для этого мне нужно передать два списка в формате, подобном [1, 2, 3] и [3, 2, 1].Я делаю AJAX-вызов Django, который возвращает два списка (я еще не добавил код для получения данных из базы данных).График работает нормально для одного списка, но не уверен, как передать второй список.

Я попытался передать два списка как json и попытался использовать каждый из списков в функции успеха вызова ajax, ноГрафик не отображается должным образом.С одним списком график работает нормально

ниже - код для вызова ChartJs AJAX

$.ajax({  
    async: pasys,  
    type: "GET",  
    url: purl,  
    data: pdata,  
    contentType: "application/json; charset=utf-8",  
    dataType: "json",  
    success: function(ldata) {  
        var barData = {  
        labels: ["Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct",   
                  "Nov", "Dec", "Jan", "Feb", "Mar"],  
        datasets: [  
        {  
            label: "DL1",  
            backgroundColor: 'rgba(220, 220, 220, 0.5)',    
            pointBorderColor: "#fff",  
            data: ldata.data1  
        },  
        {  
            label: "Non-DL1",  
            backgroundColor: 'rgba(100, 200, 300, 0.5)',  
            pointBorderColor: "#aaa",  
            data: ldata.data2  
         }  
       ]  
     };

     var barOptions = { 
         responsive: true
     };

     var ctx2 = 
       document.getElementById("opendemandtrend").getContext("2d");
       new Chart(ctx2, {type: 'bar', data: barData, options:barOptions});

* ниже - код для представления django *

    def gldh_productivitymetric_opendemandtrend_get(request):  
    lcompanyid = request.GET.get("pcompanyid")  
    lpmid      = request.GET.get("ppmid")  

    data = json.dumps({"data1": "[12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]",  
                       "data2": "[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]"})  

    return HttpResponse(data, content_type="application/json")  

1 Ответ

0 голосов
/ 13 июня 2019

Вы передаете строки как значения, а не списки.Не делай этого.

data = json.dumps({"data1": [12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1],  
                   "data2": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]})  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...