Добавление пользовательских методов в форму модели Django, созданную modelform_factory - PullRequest
0 голосов
/ 09 января 2019

У меня есть это определение:

ProfileForm = modelform_factory(User, fields=('username'))

Как добавить пользовательские методы clean_data в ProfileForm?

1 Ответ

0 голосов
/ 09 января 2019

Вы можете определить класс формы модели и передать его в modelform_factory. Например:

class UserForm(forms.ModelForm):
    def clean_username(self):
        """always make username lowercase"""
        return self.cleaned_data['username'].lower()

ProfileForm = modelform_factory(User, form=UserForm, fields=('username',))

Если вам нужно определить класс формы динамически, вы можете использовать type(). Этот пост в блоге может помочь объяснить идею, хотя ему 10 лет, поэтому код, возможно, придется скорректировать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...