招待者がゲスト(または2または3)を招待できるRSVPフォームを作成しています。フォームにはx回生成された入力があり、xはユーザーが設定したゲストの数です。たとえば、ユーザーがドロップダウンから「0」を選択した場合、フォームには1人(自分自身)の入力のみが含まれるように、ゲストを招待していません。ドロップダウンから「1」を選択すると、フォームはすべてのフィールドを複製しますが、まだルート/送信ボタンは1つだけです。Key-Value-Value(django/python)でJSONを解析する
<QueryDict: {u'restrictions': [u'None', u'Gluten'], u'name': [u'Krista', u'Joel'], u'dinner': [u'chicken', u'fish'], u'csrfmiddlewaretoken': [u'iEjxo6KgLGHZWwvaxEd6I7CUd7GTs89VGpiKwmiCP9xqXKFK096s0vboK4pPQxea']}>
:フォーム等「名前」という名前の2つの入力、「夕食」という名前の2つの入力、
私はrequest.POSTを印刷するとき、私は辞書を取得していて、重複したフォームフィールドは、オリジナルと同じですバニラPythonで
私はそうのような値にアクセスすることができます
dictionary['restrictions'][1]
「グルテン」を返します。しかし、Djangoでは、この式はキー名 'restrictions'のインデックス1の文字 'e'を返します。それは代わりに、値のキー名で手紙を開梱だと思われるので、同様に、
for key, val1, val2
print key, val1, val2
戻り、「あまりにも多くの値を解凍します」。
どのように値にアクセスできますか?あるいは、1つのルートと1つの送信ボタンを使用して、ユーザーの選択に基づいて複数のフォームを生成するより良い方法がありますか?
'request.POST [ '制限']'の出力は何を試してみてください?リストにする必要がありますが、何らかの理由で文字列のように見えます。どのように辞書にアクセスしていますか? 'request.POST ['restrictions'] [1]'? –
@ J.McBride request.POST ['restrictions']の出力が "グルテン"であり、request.POST ['name']が "Joel"です。したがって、各キーの最新の値が返されます。はい、request.POST ['restrictions'] [0]は 'r'を返し、[1]は 'e'を返します - したがって、それらのインデックスの文字は['restrictions']の文字を返します。 –