如何获取 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 中所有选中复选框的值?的主要内容,如果未能解决你的问题,请参考以下文章