Django: How to iterate over formsets and access cleaned data?

django, django-forms

Solution

Have you called `vehicles_formset.is_valid()` prior to your snippet above?

Additionally, using a ModelForm in your formset will allow you to get a listing instance from the form by simply doing `listing = form.save(commit=False)`

Problem

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.

Original source