从表单传递数组值:为什么我得到1变量而不是数组?

时间:2013-05-21 19:52:53

标签: html django forms

我尝试通过点击“提交”按钮传递下一个表单(我检查了所有2个字段):

<form id='contact-form' name='contact-form' method='get' action='/3/'>
    <input type='checkbox' name='v[]' value='1'>
    <input type='checkbox' name='v[]' value='2'>
    <input type='submit'>
</form>

在我看来,我输出所有收到的变量(使用Django框架):

@template
def view3( request ):
    print "request={0}".format( request.REQUEST )
    ...

我只得到输出中的最后一个变量:

request={u'v[]': u'2'}

html片段有问题吗?

其他信息。包含表单的html位于另一个html页面的框架中。

1 个答案:

答案 0 :(得分:2)

Python的字典只允许每个键一个值,因此Django为这种情况提供了一种特殊类型,QueryDict。要获取来自输入数组的值列表,您需要在其上调用getlist

v = request.GET.getlist('v')