最初,報(bào)錯(cuò)的form表單驗(yàn)證部分如下:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-547512.html
class ChangePwdForm(forms.Form):
password1 = forms.CharField(required=True, min_length=6)
password2 = forms.CharField(required=True, min_length=6)
def clean(self):
pwd1 = self.cleaned_data['password1']
pwd2 = self.cleaned_data['password2']
if pwd2 != pwd1:
raise forms.ValidationError("密碼不一致")
return self.cleaned_data
經(jīng)過(guò)查閱資料后發(fā)現(xiàn),如果password1
字段不能滿足定義的要求(最小六個(gè)字符長(zhǎng)度)的話,就不會(huì)出現(xiàn)在cleaned_data
中,因此clean
方法在取值時(shí)發(fā)生錯(cuò)誤。
根據(jù)上面的原理,我們只要先驗(yàn)證其是否在cleaned_data
中,再判斷其是否相等就可以了。具體修改如下:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-547512.html
class ChangePwdForm(forms.Form):
password1 = forms.CharField(required=True, min_length=6)
password2 = forms.CharField(required=True, min_length=6)
def clean(self):
if 'password1' in self.cleaned_data and 'password2' in self.cleaned_data and self.cleaned_data['password1'] != \
self.cleaned_data['password2']:
raise forms.ValidationError("密碼不一致")
return self.cleaned_data
到了這里,關(guān)于【Django-報(bào)錯(cuò)處理】form.is_valid()方法報(bào)錯(cuò):KeyError: ‘###‘的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!