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())