使用键值(pjango / python)解析JSON

时间:2017-03-21 21:56:02

标签: python json django

我正在制作一份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 

返回“解压缩的值太多”,可能是因为它正在解压缩密钥名称中的字母而不是值。

如何访问这些值?或者,有没有更好的方法根据用户的选择生成多个表单,只有一个路由和一个提交按钮?

1 个答案:

答案 0 :(得分:2)

您应该尝试request.POST.getlist('restrictions')