我想提交一份表格(通过POST)提交N(未知)user_id。 我可以将视图作为列表接收这些ID吗?
例如
def getids(request,list):
for id in list:
usr = User.objects.get(pk=id);
//do something with it.
usr.save()
是
for id in request.POST['id']:
甚至可能吗?
我正在寻找最好的接受方式。
答案 0 :(得分:5)
您应该阅读QueryDict objects:
>>> q = QueryDict('a=1&a=2&a=3')
>>> q.lists()
[('a', ['1', '2', '3'])]
答案 1 :(得分:2)
非常接近。 POST参数实际上包含在请求中的QueryDict object中。
def getids(request):
if request.method == 'POST':
for field in HttpRequest.POST:
// Logic here
答案 2 :(得分:2)
如果您在一个页面中提交大量相同的表单,您可能会发现Formsets是您想要的。
然后,您可以为userid创建一个Form,然后在Formset中重复它。然后,您可以遍历formset以读取结果。
答案 3 :(得分:0)
您可以使用稍后可以过滤的前缀创建表单字段。
假设您使用名称为uid-1,uid-2,... uid-n
的表单字段然后,当您处理POST时,您可以执行以下操作:
uids = [POST[x] for x in POST.keys() if x[:3] == 'uid']
这将为您提供POST中以“uid”开头的字段值。
答案 4 :(得分:0)
QueryDict
的{{3}}正是您要找的。 p>
来自文档:
>>> q = QueryDict('a=1', mutable=True)
>>> q.update({'a': '2'})
>>> q.getlist('a')
['1', '2']