如何使Django表单字段只包含字母数字字符

2024-06-16 11:41:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个模型

name = models.CharField(max_length=50, blank=True, null=True)
email = models.EmailField(max_length=50, unique=True)

我希望用户不能在这两个字段中使用除字母数字以外的任何其他字符。

有什么办法吗?


Tags: 用户name模型truemodelsemail字母数字
2条回答

您可以使用validator来限制字段接受的内容。一个^{}可以做到这一点:

from django.core.validators import RegexValidator

alphanumeric = RegexValidator(r'^[0-9a-zA-Z]*$', 'Only alphanumeric characters are allowed.')

name = models.CharField(max_length=50, blank=True, null=True, validators=[alphanumeric])
email = models.EmailField(max_length=50, unique=True, validators=[alphanumeric])

注意,已经有一个^{} validator为您验证电子邮件地址;上面的alphanumeric验证器将不允许使用有效的电子邮件地址。

不是RegexValidator,而是在表单属性中进行验证,例如。。。

        class StaffDetailsForm(forms.ModelForm):
             first_name = forms.CharField(required=True,widget=forms.TextInput(attrs={'class':'form-control' , 'autocomplete': 'off','pattern':'[A-Za-z ]+', 'title':'Enter Characters Only '}))

等等。。。

否则您将不得不处理视图中的错误。 我试着用这个简单的方法。。。 这将允许用户只输入字母和空格

相关问题 更多 >