Django how to override clean() method in a subclass of custom form?
django, django-forms
Solution
You do it well, but you should load cleaned_data from super call like this:
class SubClassForm(MyCustomForm):
# ... additional form fields here
def clean(self):
# Then call the clean() method of the super class
cleaned_data = super(SubClassForm, self).clean()
# ... do some cross-fields validation for the subclass
# Finally, return the cleaned_data
return cleaned_data
Problem
I created a custom form with custom validation like this: ``` class MyCustomForm(forms.Form): # ... form fields here def clean(self): cleaned_data = self.cleaned_data # ... do some cross-fields validation here return cleaned_data ``` Now, this form is subclassed with another form which has its own clean method. What is the correct way to trigger both clean() methods? At the moment, this is what I do: ``` class SubClassForm(MyCustomForm): # ... additional form fields here def clean(self): cleaned_data = self.cleaned_data # ... do some cross-fields validation for the subclass here # Then call the clean() method of the super class super(SubClassForm, self).clean() # Finally, return the cleaned_data return cleaned_data ``` It seems to work. However, this makes two clean() methods return `cleaned_data` which seems to me a bit odd. Is this the correct way?