0

カスタムフォームデータの処理に問題があります...

<input type="text" name="client[]" value="client1" />
<input type="text" name="address[]" value="address1" />
<input type="text" name="post[]" value="post1" />
...
<input type="text" name="client[]" value="clientn" />
<input type="text" name="address[]" value="addressn" />
<input type="text" name="post[]" value="postn" />

...(これは数回繰り返されます...)

私が行った場合

request.POST.getlist('client[]')
request.POST.getlist('address[]')
request.POST.getlist('post[]')

私は得る

{u'client:[client1,client2,clientn,...]}
{u'address:[address1,address2,addressn,...]}
{u'post:[post1,post2,postn,...]}

しかし、私はこのようなものが必要です

{
    {0:{client1,address1,post1}}
    {1:{client2,address2,post2}}
    {2:{client3,address3,post3}}
    ...
}

このデータをモデルに保存できるようにします。これはおそらくかなり基本的なことですが、問題があります。

ありがとうございました!

4

1 に答える 1

1

[]まず、フィールド名にをドロップしてください。これは、Djangoには存在しないPHP主義です。

次に、関連するアイテムをグループ化する場合は、フォームを変更する必要があります。各フィールドに個別の名前を付ける必要があります。

<input type="text" name="client_1" value="client1" />
<input type="text" name="address_1" value="address1" />
<input type="text" name="post_1" value="post1" />
...
<input type="text" name="client_n" value="clientn" />
<input type="text" name="address_n" value="addressn" />
<input type="text" name="post_n" value="postn" />

これで、request.POSTにはフィールドごとに個別のエントリが含まれ、次の手順を繰り返すことができます。

for i in range(1, n+1):
    client = request.POST['client_%s' % i]
    address = request.POST['address_%s' % i]
    post = request.POST['post_%s' % i]
    ... do something with these values ...

この時点で、おそらくこのフォームのセットを正確に生成し、POSTから関連するオブジェクトを作成できるモデルフォームセットを確認する必要があります。

于 2012-06-06T19:55:42.727 に答える