如何获取 Django request.POST 中所有选中复选框的值?

Posted

技术标签:

【中文标题】如何获取 Django request.POST 中所有选中复选框的值?【英文标题】:How do I get the values of all selected checkboxes in a Django request.POST? 【发布时间】:2011-01-25 21:42:36 【问题描述】:

您好,我有一系列复选框,例如

<input type="checkbox" name="checks[]" value="1" />
<input type="checkbox" name="checks[]" value="2" />
<input type="checkbox" name="checks[]" value="3" />
<input type="checkbox" name="checks[]" value="4" />

如果选择了多个,我如何在 view.py 中访问这些?

我试过了

request.POST['checks']

但这只是给了我最后一个值。我想要的是列表中已选择的所有内容,例如1,3,4

谢谢

【问题讨论】:

【参考方案1】:

试试这个:

some_var = request.POST.getlist('checks')

some_var 将包含 [1,3,4](那些被检查的值)

【讨论】:

【参考方案2】:

这将解决您的问题,

some_var = request.POST.getlist('checks[]')

如果你写some_var = request.POST.getlist('checks')可能无法正常工作。

【讨论】:

这是 Django 1.8+ 所需的方式(我不确定早期版本或 OP 当时使用的版本)。 您的意思是getlist('checks', [])?如果是这样,至少在version 1.10 中,不需要括号。 getlist 将默认返回一个空列表,用于丢失键。【参考方案3】:

这是可行的:

<input type="checkbox" name="checks[]" value="1" />
<input type="checkbox" name="checks[]" value="2" />
<input type="checkbox" name="checks[]" value="3" />
<input type="checkbox" name="checks[]" value="4" />

views.py

some_var = request.POST.getlist('checks[]')

【讨论】:

以上是关于如何获取 Django request.POST 中所有选中复选框的值?的主要内容,如果未能解决你的问题,请参考以下文章

Django 无法通过request.POST.get()获取数据的问题

Django request.POST 从输入中获取数据

如何从request.FILES获取文件名?

django 获取 POST 请求值的几种方法

django 获取post传递的json数据

数据访问:Django 表单与 request.POST 方法 [关闭]