模型约束
Odoo提供两种自动数据验证方式:
- Python 代码层约束
- SQL 数据库存约束
python约束被定义在一个装饰器方法@api.constrains(‘fields1’)中,通过对一个方法的装饰,对fields1作一个代码层的逻辑校验。约束的字段可以是多个,其中任意的一个改变都会引起约束校验,抛错逻辑自己写处理。可谓手动编辑的自动校验形式。
SQL 约束其实是定义一个model属性_sql_constraints,通过定义一个类似于domain的三元素表达式(name, sql_definition, message),来约束对应的字段。name是需要验证的表达式名称-类似于起个名字,sql_definition是一个表约束表达式,是Postgresql的语法PSQL约束介绍 ,message是违反约束后的抛错信息。