I have a form and formset: I want to be able to dynamically add more sets of these forms, including new select2s, from within the formset itself, like adding an 'add row button' from within Django.

class FruitForm(forms.ModelForm):

    region_category = forms.ChoiceField(choices=[('','----')] + [(region, region) for region in Lists.FruitTypes.region_categories], required=False)

    def __init__(self, *args, **kwargs):
        super(FruitForm, self).__init__(*args, **kwargs)
        instance = getattr(self, 'instance', None)
        if instance and instance.pk:
            self.fields['region_category'].disabled = True
            self.fields['fruit_type'].disabled = True
            self.fields['fruit_picked'].disabled = True
            self.fields['date_picked'].disabled = True

            if instance.fruit_type:
                self.fields['region_category'].initial = instance.fruit_type.region_category

        self.fields['fruit_eaten'].required = False
        self.fields['date_eaten'].required = False

    class Meta:
        model = Fruit
        fields = ['fruit_id','fruit_type', 'fruit_picked', 'date_picked', 'fruit_eaten', 'date_eaten'
                  ]
        widgets = {
            'fruit_type': autocomplete.ModelSelect2(url='fruit-type-autocomplete', forward=['region_category']),
            'date_picked': forms.DateInput(format='%Y-%m-%d', attrs={'type': 'text'}),
            'date_eaten': forms.DateInput(format='%Y-%m-%d', attrs={'type': 'text'})
        }


FruitFormset = modelformset_factory(Fruit,
                                    form=FruitForm,
                                    extra=1, 
                                    can_delete=True)

Is this possible, and how would I go about it?