【问题标题】:DJANGO: Allow white spaces on username? regex not working?DJANGO:允许用户名上的空格?正则表达式不起作用?
【发布时间】:2020-12-07 05:43:48
【问题描述】:

我正在使用

 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

【问题讨论】:

  • r'^[\w.@+-\s]+$' => r'^[\w\s.@+-]+$'

标签: django regex python-2.7 django-users


【解决方案1】:

我认为你应该改变:

username_validator = MyValidator

username_validator = MyValidator()

检查一下: How to customize username validation

【讨论】:

    猜你喜欢
    • 2017-02-10
    • 2016-10-08
    • 1970-01-01
    • 2012-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多