from django import forms class PersonForm(forms.Form): first_name = forms.CharField(max_length=255) last_name = forms.CharField(max_length=255) email = forms.EmailField(max_length=255) class NoEmptyFormsAllowedBaseFormSet(forms.formsets.BaseFormSet): """ Won't allow formset_factory to be submitted with no forms """ def clean(self): if "cleaned_data" in self.forms[0] and not self.forms[0].cleaned_data: raise forms.ValidationError, "Please fill in at least one form" formset = formset_factory(PersonForm, extra=1, formset=NoEmptyFormsAllowedBaseFormSet)