如何循环查询集以实例化所有formset?

时间:2016-02-25 09:07:46

标签: python django django-forms django-queryset formset

我希望我能创建一个循环,允许我实例化我现在所有的formset

def access(request, page_id):
    if request.method == 'POST':  
            formset = ReplyFormSet(request.POST, request.FILES, initial=[{'instance':instance,}])
    if formset.is_valid():
        #...
        return ...
    else:
        formset = ReplyFormSet(queryset=Reply.objects.filter(question=questions))
        return ...

在最后一行,我恢复了数据库中的信息,但只是为了我的第一个表格!有没有办法建立一个循环,以便它实例化我所有的形式?

我尝试了类似的东西,但它不起作用:

else:
    for form in formset:
    form.formset = ReplyFormSet(queryset=Reply.objects.filter(question=questions))
return ...

此行仅适用于我的第一个表单:

formset = ReplyFormSet(queryset=Reply.objects.filter(question=questions))

我该如何影响它?

我应该更改ReplyForm的 init 功能吗?

1 个答案:

答案 0 :(得分:1)

你可以尝试:

formset = ReplyFormSet(queryset=Reply.objects.filter(question__in=questions))

使用in过滤器,您可以获得question查询集中的每个questions