DJANGO:允许在用户名上使用空格吗?正则表达式不起作用?

问题描述

我正在使用

 django.contrib.auth.models import User

创建一个用户(不扩展用户),我想在用户名上启用空格。我尝试了以下方法:

from django.contrib.auth.validators import ASCIIUsernameValidator

class MyValidator(ASCIIUsernameValidator):
    regex = r'^[\w.@+-\s]+$'


class MyUser(User):
    username_validator = MyValidator

    class Meta:
        proxy = True  # If no new field is added.


# Create your models here.
class Person(models.Model):
    # Venue Name
    name = models.CharField(max_length=30,blank=False)
    user = models.OneToOneField(User,on_delete=models.CASCADE)

问题:它不接受空格。引发表单错误:"Enter a valid username. This value may contain only English letters,numbers,and @/./+/-/_ characters."

想法?

Django = 1.11.29

解决方法

我认为您应该更改:

username_validator = MyValidator

username_validator = MyValidator()

检查一下: How to customize username validation

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...