ajax从django views.py获取嵌套的dict。我如何访问嵌套数据?

时间:2017-11-22 09:58:37

标签: ajax django

我用ajax从django views.py获取嵌套的dict。我如何访问嵌套数据?

在views.py

class Dash():
    def get(self, request, format=None):
        data = {'index':{'a':[1,2], 'b':[2,3]}, 'value':{'a':[2,3], 'b':[3,4]}}
        return Response(data) 

在urls.py中 url(r'^api/chart/data/Dash$', Dash.as_view())

在Dash.html中

    var endpoint = '/api/chart/data/Dash'
    var index = []
    var value = []
    $.ajax({
        method: "GET",
        url: endpoint,
        success: function (data) {
            index = data.index
            value = data.value
            setChart()
        },
        error: function (error_data) {
            console.log("error")
            console.log(error_data)
        }
    })

    function setChart() {
        var rbline = echarts.init(document.getElementById('rb-line'));
        rbline.setOption({
            xAxis: [{
                type: 'category',
                data: index['a']
            }],
            series: [{
                name: 'data',
                type: 'line',
                data: value['a']
            }]
        });
    }

没有图表显示。 我是Jquery的新手,有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

您可以将数据转储到json,还需要指定要返回的内容类型是json。 javascript将为您完成剩下的工作。

import json
from django.http import HttpResponse

def get(self, request, format=None):
    data = {'index': {'a': [1, 2], 'b': [2, 3]}, 'value': {'a': [2, 3], 'b': [3, 4]}}
    json_data = json.dumps(data)

    return HttpResponse(json_data, content_type='application/json)

然后你可以在你的ajax中访问它:

success: function(data){
    var index = data.index;
    var value = data.value;
    var a = data.index['a']
}