2017-03-21 13 views
0

招待者がゲスト(または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つの送信ボタンを使用して、ユーザーの選択に基づいて複数のフォームを生成するより良い方法がありますか?

+0

'request.POST [ '制限']'の出力は何を試してみてください?リストにする必要がありますが、何らかの理由で文字列のように見えます。どのように辞書にアクセスしていますか? 'request.POST ['restrictions'] [1]'? –

+0

@ J.McBride request.POST ['restrictions']の出力が "グルテン"であり、request.POST ['name']が "Joel"です。したがって、各キーの最新の値が返されます。はい、request.POST ['restrictions'] [0]は 'r'を返し、[1]は 'e'を返します - したがって、それらのインデックスの文字は['restrictions']の文字を返します。 –

答えて

1

あなたはrequest.POST.getlist('restrictions')

+0

はい!それは動作します。ありがとうありがとう! –