Django 视图可以接收列表作为参数吗?
我想提交一个表单(用POST方式),这个表单会提交N个(数量不确定的)用户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']:
是否可行呢?
我在寻找一种最被接受的方法。
5 个回答
2
如果你在一个页面上提交很多相同的表单,你可能会觉得表单集合(Formsets)是你需要的东西。
你可以先为用户ID创建一个表单,然后在表单集合中重复这个表单。接着,你可以遍历这个表单集合来读取结果。
2
差不多了。POST参数其实是包含在请求中的一个叫做 QueryDict对象 里。
def getids(request):
if request.method == 'POST':
for field in HttpRequest.POST:
// Logic here
5
你应该了解一下 QueryDict 对象:
>>> q = QueryDict('a=1&a=2&a=3')
>>> q.lists()
[('a', ['1', '2', '3'])]