我正在使用Django 1.4和django-registration
我想允许用户使用任意Unicode字符创建用户名。目前,如果有人尝试使用非拉丁字符进行注册,他将看到错误消息。负责拒绝此类非ASCII用户名的代码位于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.")})
现在,我想改变它。我已经看到了一些建议,我应该创建自己的UserCreationForm
,并且创建一个带有一些改变行为的派生类似乎很容易。
我不明白的一点是:如何让django-registration
使用我自定义的UserCreationForm
和UserChangeForm
?显然,如果可能的话,我想避免修改django-registration
的来源。
答案 0 :(得分:2)
请参阅http://docs.b-list.org/django-registration/0.8/views.html
创建自己的注册表后,您可以将此表单传递给django-registration的注册视图。查找registration.backends.default.urls
模块
url(r'^register/$', register,
{'backend': 'registration.backends.default.DefaultBackend',
'form_class': MyRegistrationForm},