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 ...

现在,您可能想查看模型 formsets,它可以准确地生成这组表单并从 POST 创建相关对象。

于 2012-06-06T19:55:42.727 回答