使用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;
}
Run Code Online (Sandbox Code Playgroud)
以下是views.py中显示的参数
print request.POST
<QueryDict: {u'form_4606-name': [u''], u'form_4606-parents': [u'4603', u'2231', u'2234']}>
Run Code Online (Sandbox Code Playgroud)
但我无法提取父母:
print request.POST['form_4606-parents']
2234
Run Code Online (Sandbox Code Playgroud)
为什么它只给我最后一个价值?我认为序列化有问题,但我无法弄清楚如何解决这个问题.
Win*_*oon 23
从这里开始
这是一个功能,而不是一个bug.如果需要键的值列表,请使用以下命令:
values = request.POST.getlist('key')
Run Code Online (Sandbox Code Playgroud)
这应该有助于从django/python中的request.POST中检索列表项
下面的函数将 QueryDict 对象转换为 python 字典。这是对 Django 的 QueryDict.dict() 方法的轻微修改。但与该方法不同的是,它将具有两个或多个项目的列表保留为列表。
def querydict_to_dict(query_dict):
data = {}
for key in query_dict.keys():
v = query_dict.getlist(key)
if len(v) == 1:
v = v[0]
data[key] = v
return data
Run Code Online (Sandbox Code Playgroud)
用法:
data = querydict_to_dict(request.POST)
# Or
data = querydict_to_dict(request.GET)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4627 次 |
最近记录: |