我正在使用Django-Registration,为什么在管理面板中姓氏和名字为空?如果我填写所有空格并单击注册,然后转到管理面板,则有用户名密码和电子邮件,但是名字而且姓氏为空,我也不知道为什么。
lass UserRegistrationForm(forms.Form):
firstname = forms.CharField(label='First Name',max_length=50)
lastname = forms.CharField(label='Last Name',max_length=50)
username = forms.CharField(label='Username',max_length=50)
email = forms.EmailField()
password1=forms.CharField(label='Password',max_length=50,min_length=5)
password2 = forms.CharField(label='Confirm Password',max_length=50,min_length=5)
views.py
def user_registration(request):
form = UserRegistrationForm()
if request.method == 'POST':
form = UserRegistrationForm(request.POST)
if form.is_valid():
username = form.cleaned_data['username']
password = form.cleaned_data['password1']
firstname = form.cleaned_data['firstname']
lastname = form.cleaned_data['lastname']
email = form.cleaned_data['email']
user = User.objects.create_user(username,email=email, password=password)
user.firstname = firstname
user.lastname = lastname
user.save()
messages.success(request,'Thaks for registering {} .Enjoy unlimited access to our recipes .'.format(user.username))
return HttpResponseRedirect(reverse('accounts:login'))
else:
form = UserRegistrationForm()
return render(request,'accounts/register.html',{'form': form})
答案 0 :(得分:0)
默认的User
模型提供了first_name
和last_name
属性。
您应该在保存数据时使用这些属性。
def user_registration(request):
form = UserRegistrationForm()
if request.method == 'POST':
form = UserRegistrationForm(request.POST)
if form.is_valid():
username = form.cleaned_data['username']
password = form.cleaned_data['password1']
firstname = form.cleaned_data['firstname']
lastname = form.cleaned_data['lastname']
email = form.cleaned_data['email']
user = User.objects.create_user(username,email=email, password=password)
user.first_name = firstname # use the correct attribute here.
user.last_name = lastname # use the correct attribute here.
user.save()
messages.success(request,'Thaks for registering {} .Enjoy unlimited access to our recipes .'.format(user.username))
return HttpResponseRedirect(reverse('accounts:login'))
else:
form = UserRegistrationForm()
return render(request,'accounts/register.html',{'form': form})