【问题标题】:Passing array values from a form: Why I get a 1 variable instead of array?从表单传递数组值:为什么我得到一个 1 变量而不是数组?
【发布时间】:2013-05-21 19:52:53
【问题描述】:

我尝试通过单击“提交”按钮来传递下一个表单(我检查了所有 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的sn-p有问题?

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

【问题讨论】:

  • 对不起,我的回答错了我把它删了,但是我有一个建议,你是在真正的html中使用单引号还是只是复制粘贴错误?应该是双引号
  • @PauloBu 我们可以使用任何我们想要的引号 - 双引号或单引号。
  • 不要使用像 v[] 这样的字段名称,这是 PHP 主义。

标签: html django forms


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2012-08-01
    • 1970-01-01
    • 2020-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-17
    • 1970-01-01
    • 2011-02-16
    相关资源
    最近更新 更多