django表单不在数据库中保存电子邮件。我尝试了各种方法,但它仍然是唯一不保存的东西。我需要帮助 https://i.imgur.com/LJymHeS.png
forms.py
from django import forms
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm
class UserRegistrationForm(UserCreationForm):
email=forms.EmailField()
class meta:
model=User
fields= ['username', 'email_address', 'password1','password2']
views.py code
register(request):
if request.method=='POST':
form=UserRegistrationForm(request.POST)
if form.is_valid():
form.save(commit=False)
username=form.cleaned_data['username']
password1=form.cleaned_data['password1']
password2=form.cleaned_data['password2']
email_address=form.cleaned_data['email']
form.save()
return redirect('/')
else:
form=UserRegistrationForm()
return render(request, 'blog/register.html',{'form':form})
字段的名称是
email
,而不是。因此,您应将此更改为:email_address
而且
password1
和pasword2
也不是模型字段。UserCreationForm
有一些逻辑来比较字段,并设置密码。你知道吗在您的
register
视图中,不需要解包清理的数据,您只需使用form.save()
。如果要自动登录刚刚创建的用户,可以调用login(request, user)
:您可以用以下命令覆盖
UserAdmin
管理:相关问题 更多 >
编程相关推荐