【问题标题】:jQuery and django-rest-framework-bulk: send listjQuery 和 django-rest-framework-bulk:发送列表
【发布时间】:2014-06-02 16:04:38
【问题描述】:

我需要使用 django-restframework-bulk mixins 将对象列表发送到视图:

class APIPicksView(mixins.ListModelMixin,
                          bulk_mixins.BulkCreateModelMixin,
                          generics.GenericAPIView):

    def get(self, request, *args, **kwargs):
        return self.list(request, *args, **kwargs)

    def post(self, request, *args, **kwargs):
        print(type(request.DATA)) /* Should be list */
        if isinstance(request.DATA, list):
            # Custom logic here

在浏览器端,我正在尝试发送一个对象数组(列表):

    var csrftoken = $.cookie('csrftoken');
    var data = [];
    for(var i = 0; i < picks.length; ++i) {
        data.push({pick:picks[i], priority:i, user:null});
    }

    $.ajax({
        type:"POST",
        url: "/api/foo/picks/",
        data: /* How should I format this data? */,
        sucess: function() { alert("Success!"); },
        dataType: "json",
        traditional:false, /* Should this be true? */
        crossDomain:false,
        beforeSend: function(xhr, settings) {
          xhr.setRequestHeader("X-CSRFToken", csrftoken);
        }
    });

【问题讨论】:

    标签: jquery ajax django django-rest-framework


    【解决方案1】:

    如果您查看请求标头,您会注意到:

    Content-Type:application/x-www-form-urlencoded; charset=UTF-8
    

    这是 json 数据的错误类型。

    需要设置正确的内容类型并序列化数据:

    $.ajax({
        type: "POST",
        url: "/api/articles/",
        data: JSON.stringify(data),
        sucess: function() { console.log("Success!"); },
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        crossDomain:false,
        beforeSend: function(xhr, settings) {
          xhr.setRequestHeader("X-CSRFToken", csrftoken);
        }
    });
    

    【讨论】:

    • 非常感谢!我可以在 3 小时内奖励赏金...所以请稍等。
    • 顺便说一句,请求有效,但从未调用成功函数。
    • @blaze 可能是因为函数名拼写错误(sucess)。
    猜你喜欢
    • 1970-01-01
    • 2017-07-23
    • 2020-03-19
    • 2021-02-20
    • 2020-11-23
    • 2021-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多