You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 12:05:43