Python菜鳥之路:Django 數據驗證之鉤子和Form表單驗證

1、鉤子功能提供的數據驗證正則表達式

  對於數據驗證,django會執行 full_clean()方法進行驗證。full_clean驗證會經歷幾個步驟,首先,對於model的每一個字段進行正則驗證,正則驗證經過後,而後進行clean()方法驗證,這裏的clean函數,就是鉤子函數。一般是須要咱們本身去書寫。數據庫

  分析上述鉤子函數的弊端:若是在model數據庫中,有多個字段都須要進行數據驗證,則須要在每一個字段後都須要有鉤子存在才能夠,而clean方法是對總體進行數據驗證,並不能完成對於每一個字段的驗證。django

  結論:因爲鉤子功能較弱,而且驗證不經過會拋出異常,對於用戶來講並不友好,所以一般不用鉤子來進行驗證。函數

2、Form內置鉤子post

  Form的驗證功能,經歷四個階段orm

  •   字段的自定義正則表達式
  •   字段的鉤子函數,好比 name字段對應的clean_name方法
  •   執行clean方法的鉤子
  •   執行_post_clean方法的鉤子

  其中,前兩個驗證是以每一個字段來循環驗證的。鉤子

  每一種錯誤信息,放在每一個字段的錯誤信息中,對於總體的,放到了self.errors['__all__'] 值的list中。model

相關文章
相關標籤/搜索