在管理面板中看不到名字和姓氏

时间:2019-04-18 13:52:41

标签: django django-models django-forms django-views

我正在使用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})

1 个答案:

答案 0 :(得分:0)

默认的User模型提供了first_namelast_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})

docs