python - 如何使 Django 表单字段仅包含字母数字字符

标签 python django

我有这个模型

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 验证器不允许使用有效的电子邮件地址。

关于python - 如何使 Django 表单字段仅包含字母数字字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17165147/

相关文章:

django - 如何从 Django 连接到多个 PostgreSQL 模式?

python - 基于Python中列的部分匹配匹配和合并2个数据帧

python - [Python][Pydev]未知编码: MS950_HKSCS

python - 如何使用 tkinter 构建范围 slider ?

python - 通用详细 View UserProfileDetailView 必须使用对象 pk 或 URLconf 中的 slug 调用

python - Django:将 "Signals"与 "dispatch_uid"一起使用时如何防止重复?

python - Django:如何向多个页面添加元标签?

重复直到返回值不为 None 的 Pythonic 方式

python - 将 HTML 文件上传到 Google App Engine - 得到 405

python - Django:序列化多个链接模型的列表