我有这个定义:
ProfileForm = modelform_factory(User, fields=('username'))
如何向ProfileForm添加自定义clean_data方法?
答案 0 :(得分:1)
您可以定义模型表单类,并将其传递给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()
。尽管This blog post已有10年的历史了,所以可能会有助于解释这个想法。