问题描述
我正在使用
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()