cstrap
4/15/2015 - 3:35 PM

Validate form django with a function that add the errors. Useful when one form data depends on other data field.

Validate form django with a function that add the errors. Useful when one form data depends on other data field.

class MyForm(forms.Form):
    # ...
    def clean(self):
        def set_field_error(field, message):
            if field in self._errors:
                self._errors[field].append(message)
            else:
                self._errors[field] = self.error_class([message])
            if field in cleaned_data.keys():
                del cleaned_data[field]

        cleaned_data = super(MyForm, self).clean()

        if not cleaned_data.get('form_key', None):
            set_field_error('form_key', 'error message')

        return cleaned_data