8
我想在Django中創建自定義用戶註冊表單,但出現以下錯誤。我的頁面上的所有內容都能正確顯示,但是我收到錯創建自定義用戶註冊表單Django
錯誤:
Exception Type: KeyError
Exception Value: 'First name'
我form.py:
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)
保存用戶之前,您可以檢查用戶是否已經存在電子郵件。因爲最後你會有多次使用同一封電子郵件的同一用戶 –