Django 1.2为用户名添加了新的允许符号,这意味着用户名可以只是电子邮件地址。到目前为止,我一直在使用内置的UserCreationForm进行注册 - 如何更改它以将'username'字段标记为'email'字段?以及如何添加额外的(但仍然是User对象)字段,如名字和姓氏? (以及如何使它们成为可选项?)
我应该在这个程度上改变UserCreationForm还是我从头开始更好(如果是后者,怎么做?)
感谢。
答案 0 :(得分:2)
要更改电子邮件字段的标签,您可以将UserCreationForm
子类化为如下
from django import forms
from django.utils.translation import ugettext_lazy as _
from django.contrib.auth.forms import UserCreationForm
class MyUserCreationForm(UserCreationForm):
username = forms.RegexField(label=_("Email"), 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.")})
添加first_name和last_name字段并不是那么容易,因为表单的save方法只接受用户名,电子邮件和密码。两种可能性是: