問題1:? 注冊頁面輸入為空,報錯:keyError:找不到password
def clean(self):
??????? print("---",self.cleaned_data)
??????? #? if self.cleaned_data["password"]==self.cleaned_data["repeat_password"]:?????? ?
??????? #? 報錯原因:self.cleaned_data是干凈數據,如果頁面沒有輸入內容,則self.cleaned_data沒有password。
??????? 改如下:
??????? if self.cleaned_data.get("password")==self.cleaned_data.get("repeat_password"):
??????????? return self.cleaned_data
??????? else:
??????????? raise ValidationError("兩次密碼不一致")
?
?2? 為什么要用全局clean():
按子段順序一一校驗,即校驗到username時,你無法使用self.cleaned_data.get("password")。
而局部鉤子使用完,到全局時,已經可以使用所有的self.cleaned_data
3
?