我试图为编辑概要文件提供我的视图,但是它在保存数据时不起作用,我不知道我做错了什么,如果它应该像普通形式一样工作,对吗?表单可以在我的模板中看到,问题是在保存时,它没有保存任何东西
views.py
def EditProfilePageView(request):
# dictionary for initial data with
# field names as keys
context = {}
# add the dictionary during initialization
form = RegisterForm(request.POST or None)
if form.is_valid():
form.save()
return redirect('profile')
context['form'] = form
return render(request, 'Usuarios/edit-profile.html', context)form.py
class RegisterForm(UserCreationForm):
username=forms.CharField(label="Usuario",widget=forms.TextInput(attrs={'class': 'form-control'}))
email=forms.EmailField(widget=forms.TextInput(attrs={'class': 'form-control'}))
phone1=forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control'}))
phone2=forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control'}))
fax = forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control'}))
email = forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control'}))
website = forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control'}))
socialMedia1 = forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control'}))
socialMedia2 = forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control'}))
socialMedia3 = forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control'}))
alternativeContact = forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control'}))
country = forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control'}))
address = forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control'}))
city = forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control'}))
state = forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control'}))
zip = forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control'}))
password1 = forms.CharField(
label="Contraseña",
widget=forms.PasswordInput(attrs={'class':'form-control', 'type':'password', 'align':'center'}),
)
password2 = forms.CharField(
label="Confirma Contraseña",
widget=forms.PasswordInput(attrs={'class':'form-control', 'type':'password', 'align':'center'}),
)
class Meta:
model=User
fields=['phone1','phone2','fax','email','website','socialMedia1','socialMedia2',
'alternativeContact','country','address','city','state','zip']
widgets = {
'password': forms.TextInput(attrs={'class': 'form-control'}),
}发布于 2022-03-31 00:32:38
坏消息是,您不能使用UserCreationForm模型来保存自定义字段,如city、zip、...etc
UserCreationForm模型设计用于处理在Django中构建的普通用户模型字段,如:
fields = ('username', 'first_name', 'last_name', 'email', 'password1', 'password2', )因此,您不能在其上创建或放置其他字段,这意味着视图中的窗体将不会接收您添加的其他字段,因为您试图为所需字段添加空数据,这将为某些必需字段引发错误。即使您将数据添加到这些字段中,但这些字段不会在表单中添加。
您可以放弃处理UserCreationForm模型,然后可以通过ModelForm自定义您自己的表单以实现您的目标。
https://stackoverflow.com/questions/71684846
复制相似问题