我是Django + Ajax的新手。我的问题是我无法从我的ajax POST
请求中获取值。我正在使用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
任何人都可以帮助我吗?
谢谢!
答案 0 :(得分:1)
错误消息显示错误 - 您正在查找密钥ages
,但是您正在发送带有一些额外方括号的ages[]
内容。
如果您将这些括号放在字段名称中,则不需要它们 - 这是PHP主义。 (这可能不是你的错:已经知道jQuery会自己添加它们。)无论如何,你都希望使用request.POST.getlist(fieldname)
来获取与该键相关的多个值的列表。