我有一个使用Django用户模型的ModelForm。我想将字段更改为仅接受字母和数字。我可以通过使用此方法将字段设置为required来更改某些行为(请参阅代码)。那么我可以用它来更改用户名字段吗?
def __init__(self, *args, **kwargs):
super(UserForm, self).__init__(*args, **kwargs)
self.fields['first_name'].required = True
如何更改用户名字段?
答案 0 :(得分:2)
是的,你可以。您可能需要validator。我没试过这个,但它可能会起作用:
def __init__(self, *args, **kwargs):
super(UserForm, self).__init__(*args, **kwargs)
self.fields['first_name'].required = True
validator = RegexValidator(r'^[a-zA-Z0-9]*$',
'You can only enter alphanumerics')
self.fields['username'].validators = [validator]
答案 1 :(得分:0)
您可以为名字字段
定义clean_field
方法
def clean_first_name(self):
name = self.cleaned_data['first_name']
if not name.isalnum():
raise forms.ValidationError('Only alphanumeric')
return super(UserForm, self).clean_first_name()