2

来自新加坡的人报告说他无法注册我的网站。该网站是一个 Django 项目,我们使用 django-registration 模块。错误消息说关于密码字段:

this value may contain only letters, numbers and etc

用户说他在密码中只使用了拉丁字母,但他有一个中文键盘,并且他的系统 (Windows) 配置为输入中文字符。我不知道如何在我的开发环境中重现该问题。

有谁知道什么可能导致这个问题?django-registration 是否适用于非 ASCII 字符?用户说他只使用拉丁字符,所以问题可能是他的密码被编码为 Unicode,但我不太确定。

任何帮助都感激不尽。

4

1 回答 1

2

我想问题不在于密码,而在于用户名。见功能UserCreationFormUserChangeForm 这里

username = forms.RegexField(
        label=_("Username"), max_length=30, regex=r"^[\w.@+-]+$",
        help_text = _("Required. 30 characters or fewer. Letters, digits and "
                      "@/./+/-/_ only."),
        error_messages = {
            'invalid': _("This value may contain only letters, numbers and "
                         "@/./+/-/_ characters.")})

可能是他使用了一些不满足这个正则表达式的拉丁字符。

在不匹配此正则表达式时,您可能会收到此错误。

于 2012-08-15T13:41:31.550 回答