我做了一個自定義的註冊表單,它繼承了UserCreationForm
。但是,當您嘗試提交時,如果其中一個字段爲空,我會根據需要獲得KeyError
。 這似乎發生在django源代碼的某處,但我很確定它是因爲我的自定義清理方法。django用戶創建表單需要keyerror
形式:
class RegistrationForm(UserCreationForm):
"""
edit the User Registration form to add an emailfield
"""
class Meta:
model = User
fields = ('username', 'password1', 'password2')
def __init__(self, *args, **kwargs):
super(RegistrationForm, self).__init__(*args, **kwargs)
#add custom errormessages
self.fields['username'].error_messages = {
'invalid': 'Invalid username'
}
self.fields['password2'].label = "Confirm Password"
#make sure username is lowered and unique
def clean_username(self):
username = self.cleaned_data.get('username')
try:
User.objects.get(username__iexact=username)
raise forms.ValidationError("This username is already in use.")
except User.DoesNotExist:
pass
return username
def save(self, commit=True):
user = super(RegistrationForm, self).save(commit=False)
if commit:
user.save()
return user
錯誤日誌http://pastebin.com/8Y6Tp7Rw
注:我使用Django 1.8
這確實刪除了關鍵錯誤。沒有意識到我取代了所有的錯誤信息。謝謝 –