gpt4 book ai didi

python - django 用户创建表单需要 keyerror

转载 作者:太空宇宙 更新时间:2023-11-04 01:07:03 24 4
gpt4 key购买 nike

我制作了一个自定义注册表单,它继承自 UserCreationForm。但是,当您尝试提交时,其中一个字段为空,我收到一个 KeyError on required。这似乎发生在 django 源代码的某个地方,但我很确定它是因为我的自定义清理方法。

表格:

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

最佳答案

您正在用您自己的字典替换所有“用户名”字段 error_messages 字典。相反,您应该像这样使用您的自定义消息更新 error_messages 字典:

self.fields['username'].error_messages.update({
'invalid': 'Invalid username'
})

关于python - django 用户创建表单需要 keyerror,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29807436/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com