使用django 1.8,我观察到一些奇怪的东西。 这是我的javascript:
function form_submit(){
var form = $('#form1_id');
request = $.post($(this).attr('action'), form.serialize(), function(response){
if(response.indexOf('Success') >= 0){
alert(response);
}
},'text')
.fail(function() {
alert("Failed to save!");
});
return false;
}
以下是views.py
中显示的参数print request.POST
<QueryDict: {u'form_4606-name': [u''], u'form_4606-parents': [u'4603', u'2231', u'2234']}>
但我无法提取父母:
print request.POST['form_4606-parents']
2234
为什么它只给我最后一个值? 我认为序列化有问题,但我无法弄清楚如何解决这个问题。
答案 0 :(得分:21)
来自here
这是一个功能,而不是一个bug。如果需要键的值列表,请使用以下命令:
values = request.POST.getlist('key')
这应该有助于retrieving list items from request.POST in django/python
答案 1 :(得分:1)
您可以使用getlist方法
data = request.POST.getlist('form_4606-parentspass_id','')
答案 2 :(得分:0)
def QueryDict_to_dict(query_dict):
"""
Return a QueryDict object as a dict.
Unlike Django QueryDict.dict() function, this keeps lists that
have two or more items as lists.
"""
data = {}
for key in query_dict.keys():
v = query_dict.getlist(key)
if len(v) == 1:
v = v[0]
data[key] = v
return data