Django:如何在jquery中访问JsonResponse字典?

时间:2018-05-24 12:48:41

标签: jquery json django

Jquery的

$('#id_buysell').on('change', function(){

            console.log("buysell");

            var $id_buysell = $('#id_buysell').val();
            console.log($id_buysell);

            $.ajax({
                method: "GET",
                url: "/myportfolio/add_transaction",
                data: { buysell: $id_buysell }
            });

        });

观看次数

def add_transaction(request):

    if request.method == "GET":
        if request.is_ajax():
            print("ajax test")

            #print(request.GET.get)
            print(request.GET.get('coin'))
            print(request.GET.get('buysell'))


            data = {
                'view_buysell': request.GET.get('buysell'),
                'view_coin': request.GET.get('coin')
            }

            form = TransactionForm(user = request.user, coin_price = GetCoin("Bitcoin").price)

            return JsonResponse(data)

如何从视图中的JsonResponse(数据)发送到我的jquery文件的字典?我对jquery和前端开发的理解有限。我知道这将通过JSON编码的响应发送,但在搜索时无法找到正确的答案。

1 个答案:

答案 0 :(得分:2)

您使用$.ajax(..)执行AJAX请求,但是如果请求成功,您永远不会指定要执行的操作,以及如何处理数据。

传递给$.ajax(..)调用的对象可以包含success键,该键应包含使用响应调用的函数:

$.ajax({
    method: "GET",
    url: "/myportfolio/add_transaction",
    dataType: 'json',
    success: function(data, status) {
        // do something with data and status
    },
    data: { buysell: $id_buysell }
});

data因此包含响应中包含的数据,status响应的状态代码。

您也可以添加error键:在响应返回错误时调用的函数:

$.ajax({
    method: "GET",
    url: "/myportfolio/add_transaction",
    dataType: 'json',
    success: function(data, status) {
        // do something with data and status
    },
    error: function(response) {
        // do something in case the request returns an error
        // for example alert the user that the buy/sell transaction failed
        // (by checking response.status, response.responseText, etc.)
    },
    data: { buysell: $id_buysell }
});