Odoo自带的api装饰器主要有:one,multi,model,constrains,depends,onchange,returns 七个装饰器。
1、one
one的用法主要是用于self为单一记录的情况,意思是指:self仅代表当前正在操作的记录。
2、multi
multi则是指self是多个记录的合集。因此,常使用for或者self.ensure_one()
来遍历self,否则会出现最大递归错误。
multi通常用于:在tree视图中点选多条记录,然后执行某个方法,那么那个方法必须用@api.multi修饰,而参数中的self则代表选中的的多条记录。
如果仅仅是在form视图下操作,那么self中通常只有当前正在操作的记录。
3、model
此时的self仅代表模型本身,不含任何记录信息。
4、contrains
字段的代码约束,每个参数都必须是字段名。
5、depends
主要用于compute方法,depends就是用来标该方法依赖于哪些字段的,每个参数都必须是字段名。
6、onchange
onchange的使用方法非常简单,就是当字段发生改变时,触发绑定的函数,每个参数都必须是字段名。
7、returns
return的用法主要是用来指定返回值的格式,它接受三个参数,第一个为返回值的model,第二个向下兼容的method,第三个为向上兼容的method。