0

サイトに、ユーザーがオブジェクトに名前を追加できるフォームがあります。ユーザーは、プラス ボタンを押して別の名前を追加したり、マイナス ボタンを押して名前を削除したりできます。名前で始まるすべての POST 変数を簡単に取得できる必要があります。

例えば。ユーザーが 2 つの名前を追加すると、'name0' と 'name1' という 2 つのテキスト ボックス名ができます。いくつあるかわからなくても、これらの 2 つの値を引き出す方法はありますか?

私が知らないうちにこれを実行したい理由の 1 つは、名前のリストに対して任意の数の追加機能と削除機能を実行できるためです。だから私はこれで終わることができました:

「name2」、「name10」、「name11」

入ってくる名前について。正確な値を知る必要はありません。「name」で始まるすべての POST 変数をプルしたいだけです。

これは可能ですか?

4

2 に答える 2

0

すべての POST 要素を繰り返し処理し、'name' で始まる要素だけを保持できます。

names = [v for k, v in request.POST.items() if k.startswith('name')]

しかし、それは本当に間違った方法です。フィールドに別の名前を付けるべきではありません。すべてのフィールドを として'name'ください。HTTP は喜んですべてのデータを同じ変数の異なる要素として投稿し、request.POST.getlist('name').

于 2013-04-20T22:11:55.420 に答える
0

ええ、ダニエルが言ったように、次を追加します

posted = [{k.replace('person__',''):v} for k, v in request.POST.items() if k.startswith('person__')]

次に、投稿されたデータでモデルフォームを使用できます

于 2015-10-07T02:03:30.543 に答える