1、鉤子功能提供的數據驗證正則表達式
對於數據驗證,django會執行 full_clean()方法進行驗證。full_clean驗證會經歷幾個步驟,首先,對於model的每一個字段進行正則驗證,正則驗證經過後,而後進行clean()方法驗證,這裏的clean函數,就是鉤子函數。一般是須要咱們本身去書寫。數據庫
分析上述鉤子函數的弊端:若是在model數據庫中,有多個字段都須要進行數據驗證,則須要在每一個字段後都須要有鉤子存在才能夠,而clean方法是對總體進行數據驗證,並不能完成對於每一個字段的驗證。django
結論:因爲鉤子功能較弱,而且驗證不經過會拋出異常,對於用戶來講並不友好,所以一般不用鉤子來進行驗證。函數
2、Form內置鉤子post
Form的驗證功能,經歷四個階段orm
其中,前兩個驗證是以每一個字段來循環驗證的。鉤子
每一種錯誤信息,放在每一個字段的錯誤信息中,對於總體的,放到了self.errors['__all__'] 值的list中。model