8
장고에서 사용자 정의 사용자 등록 양식을 작성하려고하는데 다음과 같은 오류가 발생합니다. 내 페이지의 모든 내용이 올바르게 표시되지만 오류가 발생합니다.사용자 정의 사용자 등록 양식 작성 Django
오류 :
내 form.pyException Type: KeyError
Exception Value: 'First name'
: 여기
from django import forms
from django.contrib.auth.models import User # fill in custom user info then save it
from django.contrib.auth.forms import UserCreationForm
class MyRegistrationForm(UserCreationForm):
email = forms.EmailField(required = True)
first_name = forms.CharField(required = False)
last_name = forms.CharField(required = False)
birtday = forms.DateField(required = False)
class Meta:
model = User
fields = ('username', 'email', 'password1', 'password2')
def save(self,commit = True):
user = super(MyRegistrationForm, self).save(commit = False)
user.email = self.cleaned_data['email']
user.first_name = self.cleaned_data['First name']
user.last_name = self.cleaned_data['Last name']
user.birthday = self.cleaned_data['Birthday']
if commit:
user.save()
return user
내 views.py
from django.shortcuts import render
from django.http import HttpResponseRedirect
from django.contrib import auth
from django.core.context_processors import csrf
from forms import MyRegistrationForm
def register_user(request):
if request.method == 'POST':
form = MyRegistrationForm(request.POST) # create form object
if form.is_valid():
form.save()
return HttpResponseRedirect('/accounts/register_success')
args = {}
args.update(csrf(request))
args['form'] = MyRegistrationForm()
print args
return render(request, 'register.html', args)
사용자를 저장하기 전에 이메일이있는 사용자가 이미 있는지 확인할 수 있습니다. 결국 동일한 이메일을 여러 번 사용하면 동일한 사용자가됩니다. –