Django中如何获取POST请求里数组形式的表单值?
解决Django中获取多值表单参数的问题
Django的QueryDict和普通Python字典行为不同,当一个键对应多个值时,直接通过键索引(比如request.POST['valeur[]'])只会返回最后一个值,这就是你只能拿到0的原因。要获取该键对应的所有值,必须使用getlist()方法:
正确的代码实现
修改你的视图代码,用getlist()替代直接索引:
def sauv_reg(request, pk): if request.method == "POST": # 获取valeur[]对应的所有值,返回列表['100', '0'] valeurs = request.POST.getlist('valeur[]') print(valeurs[0]) # 输出'100' print(valeurs[1]) # 输出'0' return redirect("home") # 注意需添加return,否则redirect不会生效
关键说明
QueryDict.getlist(key)会返回该键对应的所有值组成的列表,保留提交时的顺序。- 直接使用
request.POST[key]仅返回该键的最后一个值,这是Django为兼容单值表单字段默认行为设计的。
内容的提问来源于stack exchange,提问作者Rafik Bouloudene
相关产品推荐
相关产品推荐

