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

如何统计Django QueryDict中指定键的取值数量?

解决Django中QueryDict获取多选值并统计数量的问题

在Django里,当表单提交多个同名复选框选项时,直接通过QueryDict[key]只能拿到最后一个选中的值——这是QueryDict的默认行为,为兼容HTTP表单提交特性,重复键的取值默认返回最后一个。要获取所有选中选项并统计数量,你需要使用getlist()方法:

修改后的代码

def dietPlan(request):
    # 获取表单提交的数据
    querydict = request.POST
    print(querydict)
    # 使用getlist获取所有选中的选项
    opciones_cena = querydict.getlist('opcionesCena')
    print(opciones_cena)
    # 统计选中选项的数量
    print(len(opciones_cena))

对应的打印结果

<QueryDict: {'csrfmiddlewaretoken': ['qNAKsaNlPOO3UY7X76sNy1bEuidxd4WDvUlwJXD6BYxA1JTkyra0A86eYMHJfJ3B'], 'opcionesCena': ['AlimentoID352', 'AlimentoID356', 'AlimentoID360', 'AlimentoID364']}>
['AlimentoID352', 'AlimentoID356', 'AlimentoID360', 'AlimentoID364']
4

关键说明

  • querydict['opcionesCena']:QueryDict的索引访问会返回该键对应的最后一个值,所以你之前得到的是AlimentoID364,len()计算的是这个字符串的字符长度(13)。
  • querydict.getlist('opcionesCena'):这个方法会返回该键对应的所有值组成的列表,此时len()就能正确统计选中选项的数量(4)。

内容的提问来源于stack exchange,提问作者Darian Yane

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 19:45:33