前言
前一章介绍了向模型添加一些业务逻辑的能力。现在我们可以将按钮链接到业务代码,但是我们如何防止用户输入错误的数据呢?例如,在我们的房地产模块中,没有什么可以阻止用户设置负预期价格。
Odoo提供了两种方法来设置自动验证的不变量:Python约束和SQL约束。
SQL约束
目标
- 金额应严格限制为正数
- 属性类型和标记应具有唯一的名称
SQL约束是通过模型属性**_sql_constraints定义的。这个属性被分配一个包含字符串(name、sql_definition、message)的三元组列表,其中name是一个有效的SQL约束名称,sql_definition是一个table_constraint**表达式,message是错误消息。
您可以在这里找到一个简单的示例: