2010-03-10 156 views
40

嗨,我有一个复选框数组,例如如何获取Django request.POST中所有选中复选框的值?

<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

感谢

回答

48

试试这个:

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

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

+1

这应该是'request.POST.getlist('checks')' – Claudiu 2012-06-29 21:46:53

17

这将解决您的问题,

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

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

+0

这就是你需要为Django 1.8+做的方法(我不确定在早期版本或OP在哪些版本上使用时间)。 – tokyovariable 2016-07-08 07:02:47

+0

你是不是指'getlist('checks',[])'?如果是这样,至少在[版本1.10](https://docs.djangoproject.com/en/1.10/ref/request-response/#django.http.QueryDict.getlist)中,括号不是必需的。 getlist将缺省键返回一个空列表。 – 2016-10-24 13:59:01

相关问题