0

我是 Django + Ajax 的新手。我的问题是我无法从我的 ajaxPOST请求中获取值。我正在使用jquery post.

我的任务是对可拖动列表项进行排序。拖放不是问题。从POST请求中获取值是问题所在。它返回MultiValueDictKeyError

"Key 'ages' not found in <QueryDict: {u'action': [u'updateRecords'], u'ages[]': [u'80', u'81', u'79', u'82', u'83', u'84', u'85', u'86']}>"

这是我的ajax:

$(function() { 
    var url = ""; /* won't place it*/
    $("ul#ages").sortable({ opacity: 0.6, cursor: 'move', update: function() {
            var order = $(this).sortable("serialize") + '&action=updateRecords';
            $.post(url, order, function(theResponse){
                alert('success');
            });
        }
    });
});

这是意见:

if request.is_ajax():
        if request.POST['action'] == "updateRecords":
            update_record_array = request.POST['ages']

            order_counter = 1;

            for record_id in update_record_array:
                Age.objects.filter(id=record_id).update(order_id=order_counter)
                order_counter += 1

谁能帮我吗?

谢谢!

4

1 回答 1

1

错误消息显示出了什么问题 - 您正在查找 key ages,但您正在发送ages[]带有一些额外方括号的内容。

如果您将这些括号放在字段名称中,则不需要它们 - 那是 PHP 主义。(这可能不是你的错:众所周知,jQuery 会自己添加它们。)在任何情况下,你都希望使用它request.POST.getlist(fieldname)来获取与该键关联的多个值的列表。

于 2012-06-13T21:07:37.560 回答