我正在制作一份RSVP表格,被邀请者可以选择带客人(或2或3)。表单生成x次的输入,其中x是用户设置的guest虚拟机的#。因此,例如,如果用户从下拉列表中选择“0”,则他们不会带来访客,因此表单只有1个人(他们自己)的输入。如果他们从下拉列表中选择“1”,表单将复制所有字段,但仍然只有一个路径/一个提交按钮。复制的表单字段与原始字段相同,因此表单有2个名为“name”的输入,2个名为“dinner”的输入等。
我在打印request.POST:
时收到一本字典<QueryDict: {u'restrictions': [u'None', u'Gluten'], u'name': [u'Krista', u'Joel'], u'dinner': [u'chicken', u'fish'], u'csrfmiddlewaretoken': [u'iEjxo6KgLGHZWwvaxEd6I7CUd7GTs89VGpiKwmiCP9xqXKFK096s0vboK4pPQxea']}>
在vanilla python中,我可以像这样访问值:
dictionary['restrictions'][1]
返回“麸质”。但是在Django中,这个表达式返回'e' - 关键名称'restrictions'的索引1处的字母。同样地,
for key, val1, val2
print key, val1, val2
返回“解压缩的值太多”,可能是因为它正在解压缩密钥名称中的字母而不是值。
如何访问这些值?或者,有没有更好的方法根据用户的选择生成多个表单,只有一个路由和一个提交按钮?
答案 0 :(得分:2)
您应该尝试request.POST.getlist('restrictions')