Reputation: 2869
I'm using a ModelFormSet
, and I'm getting a None
value for my instances. POST
data is coming through; the form validates; and everything's great up until instances = form.save(commit=False)
. What could be the origin of this?
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())
Upvotes: 0
Views: 110
Reputation: 99620
Try this:
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())
Your issue is here:
instances = form.save(commit=False)
The issue is, you need to extract the individual form objects, cast it to the object instance, and assign user
to it. Where as in your code, instances=form.save(...)
is not doing that.
Upvotes: 2