为什么我的ModelFormSet没有保存?

时间:2013-09-09 14:33:56

标签: django django-forms

我正在使用ModelFormSet,我的实例获得None值。 POST数据正在传播中;表格有效;一切都很好,直到instances = form.save(commit=False)。这可能是什么原因?

    if request.POST:
            form = MembershipFormSet(request.POST)
            if form.is_valid():
                    instances = form.save(commit=False)
                    for instance in instances:
                            instance.user = request.user
                            instance.save()
                    return HttpResponseRedirect('next_page')
            else:   
                    return HttpResponse(form.errors + request.POST.items())

1 个答案:

答案 0 :(得分:2)

试试这个:

if request.POST:
    formset = MembershipFormSet(request.POST)
    if formset.is_valid():
        for form in formset:
            instance = form.save(commit=False)
            instance.user = request.user
            instance.save()
        return HttpResponseRedirect('next_page')
    else:   
        return HttpResponse(formset.errors + request.POST.items())

您的问题在这里:

instances = form.save(commit=False)

问题是,您需要提取单个表单对象,将其强制转换为对象实例,并为其指定user。在您的代码中,instances=form.save(...)没有这样做。