2017-08-12 53 views
1

我想學習如何使用用戶類,並做了一個窗體,但不能得到它顯示電子郵件,名字和姓氏字段,我有以下代碼:Django窗體不顯示名稱和電子郵件字段

forms.py:

from django import forms 
from django.contrib.auth.models import User 
from django.contrib.auth.forms import UserCreationForm 

class RegistrationForm(UserCreationForm): 
    email = forms.EmailField(required = True) 

    class Meta: 
     model = User 
     fields = (
      'username', 
      'email', 
      'first_name' 
      'password1', 
      'password2' 
     ) 

    def save(self, commit = True): 
     user super(UserCreationForm, self).save(commit = False) 
     user.first_name = self.cleaned_data['first_name'] 
     user.last_name = self.cleaned_data['last_name'] 
     user.email = self.cleaned_data['email'] 

      if commit: 
       user.save() 

       return user 

views.py:

from django.shortcuts import render, redirect 
from django.http import HttpResponse 

from django.contrib.auth.forms import UserCreationForm 

def index(request): 
    return HttpResponse('index page') 


def register(request): 
    if request.method == 'POST': 
     form = UserCreationForm(request.POST) 
     if form.is_valid(): 
      form.save() 
      return redirect('accounts') 

    else: 
     form = UserCreationForm() 

    return render(request, 'accounts/register.html', {'form': form}) 
# Create your views here. 

register.html:

{% extends 'accounts/base.html' %} 

{% block head %} 
    <title> Sign Up</title> 
{% endblock %} 
{% block body %} 
    <h2>Sign up</h2> 

    <form method="post"> 
    {% csrf_token %} 
    {{ form.as_p }} 
    <button type="submit">Sign up</button> 
    </form> 
{% endblock %} 

當我去/帳戶/註冊一個帶有用戶名,密碼和密碼確認字段的窗體出現,表單工作並保存到數據庫。但在User模型中包含的first_name,last_name,email字段在哪裏?

+0

你不使用你隨時隨地RegistrationForm更換。 –

回答

2

使用RegistrationForm,而不是UserCreationForm在你的意見

from django.contrib.auth.forms import UserCreationForm 

from .forms import RegistrationForm 

form = RegistrationForm() 
相關問題