首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使Django表单域仅包含字母数字字符

如何使Django表单域仅包含字母数字字符
EN

Stack Overflow用户
提问于 2013-06-18 17:22:26
回答 2查看 29.2K关注 0票数 39

我有这个型号

代码语言:javascript
复制
name = models.CharField(max_length=50, blank=True, null=True)
email = models.EmailField(max_length=50, unique=True)

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

有什么办法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-18 17:35:56

您可以使用validator来限制字段接受的内容。RegexValidator在这里可以做到这一点:

代码语言:javascript
复制
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])

请注意,已经有一个为您验证电子邮件地址的validate_email validator;上面的alphanumeric验证器不允许有效的电子邮件地址。

票数 89
EN

Stack Overflow用户

发布于 2017-05-26 20:14:20

在表单属性中给出验证,而不是RegexValidator,就像...

代码语言:javascript
复制
        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 '}))

以此类推。

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17165147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档