模型約束
Odoo提供兩種自動數據驗證方式:
- Python 代碼層約束
- SQL 數據庫存約束
python約束被定義在一個裝飾器方法@api.constrains(‘fields1’)中,通過對一個方法的裝飾,對fields1作一個代碼層的邏輯校驗。約束的字段可以是多個,其中任意的一個改變都會引起約束校驗,拋錯邏輯自己寫處理。可謂手動編輯的自動校驗形式。
SQL 約束其實是定義一個model屬性_sql_constraints,通過定義一個類似於domain的三元素表達式(name, sql_definition, message),來約束對應的字段。name是需要驗證的表達式名稱-類似於起個名字,sql_definition是一個表約束表達式,是Postgresql的語法PSQL約束介紹 ,message是違反約束後的拋錯信息。