私は Web プログラミングが初めてで、これが私の最初の SO の質問です。うまくいけば、正しい方法で質問しています。私は単純なアンケート作成者 (Google フォームやアンケート モンキーに似ています) を構築しており、ユーザーが質問にオプションを追加できる Web フォームを持っています。各オプションには、「ラベル」と「値」の 2 つのフィールドがあります。フォームは次のようになります。
Option One
------------------ ------------------
Label: | | Value: | |
------------------ ------------------
Option Two
------------------ ------------------
Label: | | Value: | |
------------------ ------------------
...
...
... // user can "add option" and additional "rows" will appear in the form
[ SUBMIT ]
次のような基本的な Web フォームを使用しました。
<form class="well form" action="/submitform" method="post">
<p><input type="text" name="label_1">
<input type="text" name="value_1"></p>
<p><input type="text" name="label_2">
<input type="text" name="value_2"></br></p>
<p>... // and so forth, to support n sets of two fields
...
...
<button type="submit">Submit</button>
</form>
request.form を正常に取得し、辞書内の各変数にアクセスできます。しかしもちろん、それは単一のフラット dict です。
[{'label_1': 'labelone', 'value1': 'valueone', 'label_2': 'label two'}]
など。次のような辞書のリストが必要です。
[ {'label': 'labelone', 'value': 'valueone'}, {'label': 'labeltwo', 'value': 'valuetwo'}]
これを行うためのハックな方法をいくつか考えましたが、いずれもフォーム オプションの数と種類をあらかじめ知っておく必要があります。もっと柔軟な解決策を見つけたいと思います。
ここでベストプラクティスはありますか?多くのサイトがこのようなことを行っているので、私が見逃しているベスト プラクティスがあると思います。