0

我正在使用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())
4

1 回答 1

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(...)没有这样做。

于 2013-09-09T14:37:46.137 回答