Reputation: 283335
What if I want to do something with my formset other than immediately saving it?
How can I do this?
for form in vehicles_formset.forms:
listing.id = None
listing.vehicle_year = form.cleaned_data['year']
listing.vehicle_make = form.cleaned_data['make']
listing.vehicle_model = form.cleaned_data['model']
listing.vin = form.cleaned_data['vin']
listing.vehicle_runs = form.cleaned_data['runs']
listing.vehicle_convertible = form.cleaned_data['convertible']
listing.vehicle_modified = form.cleaned_data['modified']
listing.save()
(Thus creating multiple listings) Apparently cleaned_data
does not exist. There's a bunch of stuff in the data
dict like form-0-year
but it's pretty useless to me like that.
Upvotes: 4
Views: 5157
Reputation: 617
Just to further the previous comment, once formset.is_valid()
is called, you can also do save(commit=False)
directly on the formset. This will return a list of the instances, which can then be individually modified and then saved:
forms = formset.save(commit=False)
for form in forms:
form.some_field_name = new_value
form.save()
Upvotes: 1