Django Formset.is_valid () falla para formularios adicionales
En mi aplicación Django, tengo un conjunto de formularios creado a partir de un formulario simple (no modelo), con el extra = 1 (para permitir que javasript agregue más formularios más adelante).
class SomeForm(forms.Form):
#some fields with required=False
length = forms.IntegerField(required=False)
# An example of one of the fields with choices i have
A = 0
B = 1
C = 2
D = 3
choices = ((A, 'Aah'), (B, 'Baa'), (C, 'Caa'), (D, 'Daa'))
# This is a required choice field
pickme = forms.ChoiceField(choices=choices)
SomeFormset = formset_factory(SomeForm, can_delete=True, extra=1)
Ahora, cuando creo e intento validarlo desde mi punto de vista en la solicitud POST:
my_formset = SomeFormset(request.POST, request.FILES)
if(my_formset.is_valid()):
# FAIL
siempre falla la verificación anterior, si elextr el formulario procesado se envía vacío.
Si verifico porform.changed_data
en el último formulario adicional vacío, obtengo los campos que tienen opciones en ellos (como el pickme encima). En otras palabras, el conjunto de formularios no es lo suficientemente inteligente como para darse cuenta de que el formulario enviado vacío debe ignorarse cuando se requieren algunos campos de elección.