Django updateview определяет clean_attr на автоматической форме

Я создаю производную от UpdateView, и я хотел бы использовать автоматическую форму, но добавить тест на валидность для поля.

ModelForm предлагает cleanan_, что как раз то, что мне нужно.

Моя проблема заключается в переопределении этого метода в классе, который мой код не строит

Я могу это сделать... но есть ли более чистый способ?

def check_myattr(self):
    data = self.cleaned_data["myattr"]
    if anything_wrong(data) :
        raise ValidationError("not like that")
    return data
    
class SomeEditView(UpdateView):
    model         = Some
    fields        = ('myattr', 'more')
    template_name = "/some_edit.html"
    def get_form(self, form_class=None):
        """Return an instance of the form to be used in this view."""
        if form_class is None:
            form_class = self.get_form_class()
        setattr(form_class, 'clean_myattr', check_myattr)
        return form_class(**self.get_form_kwargs())
Вернуться на верх