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

如何在Django中正确获取多选Select控件的所有选中值?

获取Django中多选Select控件的所有选中值

嗨,这个问题我之前开发时也踩过坑!你遇到的情况是因为Django里的request.POST是QueryDict类型,它和普通Python字典的行为不一样——当同一个键对应多个值的时候,直接用self.request.POST['document']这种方式取值,只会返回最后一个选中的选项值。

要拿到所有选中的选项,你只需要用QueryDict提供的getlist()方法就可以了,代码改成这样:

selected_documents = self.request.POST.getlist('document')

执行这段代码后,selected_documents就会是包含所有选中值的列表,比如你选中两个选项时,它会返回['2', '3'],完全符合你的需求。

如果担心用户可能没有选中任何选项(这时候document键不会出现在POST数据里),还可以给getlist()加一个默认值,避免抛出KeyError:

selected_documents = self.request.POST.getlist('document', default=[])

这样即使没有选中任何选项,你也会得到一个空列表,代码处理起来更安全。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 21:17:37