首页 > 解决方案 > 如何将 BIGGERkeysses 禁用到用 django 构建的身份验证应用程序中?

问题描述

我只想在身份验证应用程序登录页面中创建小写用户

标签: pythondjango

解决方案


您可以制作一个自定义的用户模型 [Django-doc],添加一个验证器来检查用户名是否以小写形式编写:

# app_name/models.py

from django.contrib.auth.models import AbstractUser
from django.core.exceptions import ValidationError
from django.utils.translation import gettext_lazy as _

def validate_lower(value):
    if not value.islower():
        raise ValidationError(
            _('The username %(value)s should be written in lowercase'),
            params={'value': value},
        )

class User(AbstractUser):
    username_validators = [
        AbstractUser.username_validator,
        validate_lower
    ]

    username = models.CharField(
        _('username'),
        max_length=150,
        unique=True,
        help_text=_('Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.'),
        validators=username_validators,
        error_messages={
            'unique': _("A user with that username already exists."),
        },
    )

然后通过在设置 [Django-doc]User中设置您定义的模型app_name.User作为用户模型。AUTH_USER_MODEL


推荐阅读