我有这个型号的

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

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

有什么办法吗?

推荐答案

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

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验证器不允许有效的邮箱地址.

Django相关问答推荐

如何在Django中将可选参数传递给视图?

我的Django终结点不访问HAS_OBJECT_PERMISSION方法

设置wagail开发环境时出现ImportError:";无法从';wagta.search;";导入名称.

无法在views.py django中验证密码

在 django HTML 邮箱模板中使用字体

相同的字符串不同的翻译

django 创建多种类型用户的最佳方法

当我告诉它时,如何使用 Django 的记录器来记录回溯?

我的 django 模板布尔变量在 javascript 中没有按预期工作

Django:get_or_create 使用 together_unique 引发重复条目

TestCase 类中的 setUpClass、setUpTestData 和 setUp 有什么区别?

用于测试文件下载的 Django 单元测试

通过 django shell 保存图像/文件

Django:访问给定字段的 Select 元组

django python 日期时间设置为午夜

登录后django重定向不起作用next不发布?

在 Django REST 框架序列化程序中动态排除或包含字段

Django - 安装 mysqlclient 错误:需要 mysqlclient 1.3.13 或更高版本;你有 0.9.3

如何在 Python 中运行另一个脚本而不等待它完成?

如何在 django 模板中呈现有序字典?