我想爲Django項目構建一個用戶註冊頁面。Django 1.10錯誤,'NoneType'對象無法調用
我有稱爲custom_user一個應用程序,其中models.py文件包含以下(除了進口):
class CustomUserManager(BaseUserManager):
def create_user(self, identifier, password, email, full_name, date_of_birth):
user = self.model(
identifier=identifier,
email=self.normalize_email(email),
full_name=full_name,
date_of_birth=date_of_birth
)
user.set_password(password)
user.save(using=self._db)
return user
def create_superuser(self, identifier, password, email, full_name, date_of_birth):
# Almost same as previous method.
class CustomUser(AbstractBaseUser, PermissionsMixin):
objects = CustomUserManager()
USERNAME_FIELD = 'identifier'
identifier = models.CharField(max_length=40, unique=True)
email = models.EmailField(max_length=200, unique=True)
full_name = models.CharField(max_length=200)
date_of_birth = models.DateField()
is_active = models.BooleanField(default=True)
is_staff = models.BooleanField(default=False)
REQUIRED_FIELDS = ['full_name', 'email', 'date_of_birth']
def get_full_name(self):
return self.full_name
def get_short_name(self):
return self.identifier
在稱爲sign_up另一個應用程序,用於簽約的視圖看起來:
def index(request):
if request.method == 'POST':
form = CreateUserForm(request.POST)
if form.is_valid():
# Create the new user.
manager = CustomUserManager()
user = manager.create_user(
form.cleaned_data['identifier'],
form.cleaned_data['password'],
form.cleaned_data['email'],
form.cleaned_data['full_name'],
form.cleaned_data['date_of_birth'],
)
return HttpResponseRedirect(reverse('sign_up:user_created'))
else:
form = CreateUserForm()
return render(request, 'sign_up/index.html', {'form': form})
的views.py文件導入CreateUserForm
類(放在sign_up目錄的forms.py):
from django.forms import ModelForm
from custom_user.models import CustomUser
class CreateUserForm(ModelForm):
class Meta:
model = CustomUser
fields = ['identifier', 'password', 'email', 'full_name', 'date_of_birth']
...最後由視圖中使用的模板包含:
<h1>Welcome to the signup page!</h1>
<form action="{% url 'sign_up:index' %}" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="Sign up" />
</form>
當表單提交(和form.is_valid()
似乎返回True
),錯誤消息在/ sign_up /'NoneType'對象的類型錯誤不可調用顯示,而不是user_created查看。
回溯:
文件 「/Users/carltiden/anaconda/lib/python2.7/site-packages/django/core/handlers/exception.py」 在內 39.響應= get_response(請求)
文件 「/Users/carltiden/anaconda/lib/python2.7/site-packages/django/core/handlers/base.py」 在_get_response 187.響應= self.process_exception_by_middleware( e,請求)
文件 「/Users/carltiden/anaconda/lib/python2.7/site-packages/django/core/handlers/base.py」 在_get_response 185.響應= wrapped_callback(請求,* callback_args,** callback_kwargs)
在 索引 24. form.cleaned_data [ 'DATE_OF_BIRTH'],文件 「
文件 「/Users/carltiden/GitHub/a_project/a_project/sign_up/views.py」/用戶/ carltiden/GitHub/a_project/a_project/custom_user/models.py「 create_user 15. date_of_birth = date_of_b IRTH
異常類型:類型錯誤在/ sign_up /異常值: 'NoneType' 對象不是可調用
(線15是實際的代碼date_of_birth=date_of_birth
線)這是爲什麼;我在這裏做錯了什麼?