Django formsets: make first required?

Found a better solution:

class RequiredFormSet(BaseFormSet):
    def __init__(self, *args, **kwargs):
        super(RequiredFormSet, self).__init__(*args, **kwargs)
        for form in self.forms:
            form.empty_permitted = False

Then create your formset like this:

MyFormSet = formset_factory(MyForm, formset=RequiredFormSet)

I really don’t know why this wasn’t an option to begin with… but, whatever. It only took a few hours of my life to figure out.

This will make all the forms required. You could make just the first one required by setting self.forms[0].empty_permitted to False.

Leave a Comment