odoo特殊的功能简要介绍

由于实际业务场景需要,odoo 的开发者,结合实际情况,编写了几个相关API,用于实际场景的控制。

onchange:当在页面的前端,字段数据发生变化时,对字段的控制。

场景应用:在界面上,当用户编辑数据字段时,如果该字段通过onchange属性进行控制了,那么当用户修改数据后,将鼠标光标移动到其他地方(非用户当前编辑的字段的位置),那么就会触发onchange方法

onchange 的应用实例:

给字段的赋值或清空数据
对字段的进行校验,提供提示

compute:当页面的数据发生变化时,(不论前端还是后端),自己计算相关字段的数据。

场景应用:当字段是由计算而来的,字段较为灵活。可以一次性计算多值。

应用实例:

余额 = 月初金额 - 本月支出金额 + 本月收入金额 余额字段定义时,使用计算字段是极为合适的。

注意:计算字段默认不存储在数据库中,同时,该字段的计算过程,需要依赖其它字段进行计算,当界面上出现了它计算依赖的字段,并且进行保存的时候,就会自动计算。
该字段如果需要被搜索,有两种方式可以实现:1.需要存储起来,加上store= True ,2.加上固定的属性 _search。

constraint: 对数据的限制,在保存时进行校验

应用场景:当需要对数据进行限制,但是仅仅通过sql_constraint 还有onchange,compute等其他方法无法实现的情况下,使用它。

应用实例:

当某个字段需要在某种其他字段为某种类型的情况下,它会有字段的范围的限制,如:员工为famale属性时,才会有3.8妇女假期。