私はDjangoプロジェクト用のユーザーサインアップページを作成しようとしています。Django 1.10エラー、 'NoneType'オブジェクトが呼び出せません
私が持っているmodels.pyファイルが(離れて輸入から)次のものが含まれているcustom_userと呼ばれるアプリ:sign_upと呼ばれる別のアプリで
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
、サインアップのためのビューをviews.pyファイルはをインポート
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})
:ように見えます(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'オブジェクトのTypeErrorは、の代わりに表示されますuser_createdビュー。
トレースバック:
ファイル "/Users/carltiden/anaconda/lib/python2.7/site-packages/django/core/handlers/exception.py" 内側 39応答で = GET_RESPONSE(リクエスト)_get_response 187応答= self.process_exception_by_middlewareで
ファイル "/Users/carltiden/anaconda/lib/python2.7/site-packages/django/core/handlers/base.py" ( e、request)
_get_responseでファイル "/Users/carltiden/anaconda/lib/python2.7/site-packages/django/core/handlers/base.py" 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 "in create_user 15. date_of_birth = date_of_b irth
例外タイプ:sign_up /例外値/ ATはTypeError: 'NoneType' オブジェクトが
呼び出すことはできません(ライン15は、実際のコードでdate_of_birth=date_of_birth
行である。)なぜこの出来事です。私はここで何が間違っていますか?