Django UserCreationForm 扩展
Django UserCreationForm extension
我可以向当前包含用户名、电子邮件、密码 1 和密码 2 的 UserCreationForm 的扩展添加地址、城市、州、国家/地区、密码和安全问题和答案等字段吗?如果是,请说明如何?
forms.py
class UserCreationForm(UserCreationForm):
email = EmailField(label=_("Email address"), required=True,
help_text=_("Required."))
city= forms.CharField(label= _("City"),max_length=20, required=True)
state= forms.CharField(label= _("State"),max_length=20, required=True)
class Meta:
model = User
fields = ("username", "email", "password1", "password2","city","state")
def save(self, commit=True):
user = super(UserCreationForm, self).save(commit=False)
user.email = self.cleaned_data["email"]
user.city = self.cleaned_data["city"]
user.state = self.cleaned_data["state"]
if commit:
user.save()
return user
是的,就像您处理电子邮件一样:
class UserCreationForm:
a_field = WhateverField(whatever='whatever'...)
class Meta:
model = User
fields = ("username", "email", "password1", "password2")
该字段现已添加到您的表单中。
目前您正在扩展 UserCreationForm class 如果您在用户模型中有其他字段,那么您可以使用 forms.ModelForm 并仅提及其他字段。
例如
class UserForm(forms.ModelForm):
class Meta:
model = User
fields = ['username','name', 'email', 'phone',
'address','city','state', 'first_time']
如果你想使用自定义表单。
class UserForm(forms.Form):
name = forms.CharField(label= _("Name"))
address = forms.CharField(label=_("Address"))
etc.
我可以向当前包含用户名、电子邮件、密码 1 和密码 2 的 UserCreationForm 的扩展添加地址、城市、州、国家/地区、密码和安全问题和答案等字段吗?如果是,请说明如何?
forms.py
class UserCreationForm(UserCreationForm):
email = EmailField(label=_("Email address"), required=True,
help_text=_("Required."))
city= forms.CharField(label= _("City"),max_length=20, required=True)
state= forms.CharField(label= _("State"),max_length=20, required=True)
class Meta:
model = User
fields = ("username", "email", "password1", "password2","city","state")
def save(self, commit=True):
user = super(UserCreationForm, self).save(commit=False)
user.email = self.cleaned_data["email"]
user.city = self.cleaned_data["city"]
user.state = self.cleaned_data["state"]
if commit:
user.save()
return user
是的,就像您处理电子邮件一样:
class UserCreationForm:
a_field = WhateverField(whatever='whatever'...)
class Meta:
model = User
fields = ("username", "email", "password1", "password2")
该字段现已添加到您的表单中。
目前您正在扩展 UserCreationForm class 如果您在用户模型中有其他字段,那么您可以使用 forms.ModelForm 并仅提及其他字段。
例如
class UserForm(forms.ModelForm):
class Meta:
model = User
fields = ['username','name', 'email', 'phone',
'address','city','state', 'first_time']
如果你想使用自定义表单。
class UserForm(forms.Form):
name = forms.CharField(label= _("Name"))
address = forms.CharField(label=_("Address"))
etc.