Moved ManagementForm's fields to class attributes.

This helps introspection, and it follows the comment in
BaseForm.__init__() to avoid changing base_fields.

Thanks to Silvio Gutierrez and Baptiste Mispelon for investigating.
This commit is contained in:
Adam Johnson 2021-12-09 16:42:27 +00:00 committed by Mariusz Felisiak
parent 0d2435328a
commit 702c314c57
1 changed files with 7 additions and 9 deletions

View File

@ -30,15 +30,13 @@ class ManagementForm(Form):
new forms via JavaScript, you should increment the count field of this form new forms via JavaScript, you should increment the count field of this form
as well. as well.
""" """
def __init__(self, *args, **kwargs): TOTAL_FORMS = IntegerField(widget=HiddenInput)
self.base_fields[TOTAL_FORM_COUNT] = IntegerField(widget=HiddenInput) INITIAL_FORMS = IntegerField(widget=HiddenInput)
self.base_fields[INITIAL_FORM_COUNT] = IntegerField(widget=HiddenInput) # MIN_NUM_FORM_COUNT and MAX_NUM_FORM_COUNT are output with the rest of the
# MIN_NUM_FORM_COUNT and MAX_NUM_FORM_COUNT are output with the rest of # management form, but only for the convenience of client-side code. The
# the management form, but only for the convenience of client-side # POST value of them returned from the client is not checked.
# code. The POST value of them returned from the client is not checked. MIN_NUM_FORMS = IntegerField(required=False, widget=HiddenInput)
self.base_fields[MIN_NUM_FORM_COUNT] = IntegerField(required=False, widget=HiddenInput) MAX_NUM_FORMS = IntegerField(required=False, widget=HiddenInput)
self.base_fields[MAX_NUM_FORM_COUNT] = IntegerField(required=False, widget=HiddenInput)
super().__init__(*args, **kwargs)
def clean(self): def clean(self):
cleaned_data = super().clean() cleaned_data = super().clean()