首页 > 解决方案 > 如何验证自定义用户模型用户名以防止空格

问题描述

这是我的代码:

class User(AbstractBaseUser, PermissionsMixin):
    email = models.EmailField(
        verbose_name=_('email address'), max_length=255, unique=True
    )
    username = models.CharField(_('username'), max_length=30, unique=True)
    first_name = models.CharField(_('first name'), max_length=30, blank=True)
    last_name = models.CharField(_('last name'), max_length=150, blank=True)

如何防止用户在username字段中使用空格?

标签: pythondjango

解决方案


您可以使用Django 本身使用UnicodeUsernameValidator的验证器:

from django.contrib.auth.validators import UnicodeUsernameValidator

username = models.CharField(
    _('username'), max_length=30, unique=True, 
    validators=[UnicodeUsernameValidator()]
)

根据您的用例,您也可以进行子类化AbstractUser以避免重新定义某些字段。


推荐阅读