来自新加坡的人报告他无法注册我的网站。该网站是Django项目,我们使用django-registration模块。关于密码字段的错误消息说明:
this value may contain only letters, numbers and etc
用户说他的密码只使用拉丁字母,但他有一个中文键盘,他的系统(Windows)配置为输入汉字。我不知道如何在我的开发环境中重现这个问题。
有谁知道什么可能导致这个问题? django-registration是否适用于非ASCII字符?用户说他只使用拉丁字符,所以可能问题是他的密码被编码为Unicode,但我对此并不确定。
非常感谢任何帮助。
答案 0 :(得分:2)
我猜问题不在于密码,而在于用户名。查看函数UserCreationForm
和UserChangeForm
here
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.")})
可能是他正在使用一些不满足这个正则表达式的拉丁字符。
如果不匹配此正则表达式,您可能会收到此错误。