gpt4 book ai didi

django - 在 Django 1.2 中自定义 UserCreationForm 将电子邮件地址作为用户名

转载 作者:行者123 更新时间:2023-12-02 05:18:48 25 4
gpt4 key购买 nike

Django 1.2 为用户名添加了新的允许符号,这意味着用户名可以只是电子邮件地址。到目前为止,我一直在使用内置的 UserCreationForm 进行注册 - 如何更改它以将“用户名”字段标记为“电子邮件”字段?以及如何添加额外的(但仍然是用户对象)字段,例如名字和姓氏? (以及如何使它们成为可选的?)

我应该将 UserCreationForm 更改到这种程度,还是最好从头开始(如果是后者,如何更改?)

谢谢。

最佳答案

要更改电子邮件字段的标签,您可以按如下方式对 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.")})

添加名字和姓氏字段并不那么容易,因为表单的保存方法只需要用户名、电子邮件和密码。两种可能性是:

  • 覆盖表单的保存方法
  • 创建用户后显示 UserChangeForm(这是 Django 管理应用的作用)

关于django - 在 Django 1.2 中自定义 UserCreationForm 将电子邮件地址作为用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3316318/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com