http://odoo-new-api-guide-line.readthedocs.io/en/latest/decorator.html
@api.one
one装饰符自动遍历记录集,把self重新定义成当前记录。注意,返回值是一个list. web client有可能不支持该装饰。这时应该用@api.multi修饰函数,函数中可能还需要条用self.ensure_one() 。
@api.multi
self就是当前记录集。
@api.model
该装饰会将旧的API函数转换成带有装饰符的新API函数符号,使得代码可以平滑迁移。
@api.constrains
该装饰确保被修饰的函数在create, write, unlink时被调用。当约束条件满足时,函数应该raise 相应的异常警告消息
@api.depends
@api.depends('name', 'an_other_field') def afun(self): pass依赖的任一字段变化时(ORM or Form),触发该函数执行。
@api.onchange
@api.onchange('fieldx') def do_stuff(self): if self.fieldx == x: self.fieldy = 'toto'例子中self是指form中的记录,当在on_change上下文时,所有的工作都是在缓存中进行,所以你可以在函数中直接修改记录集而不用担心会修改数据库, 这是和depends的最大区别。函数返回时将缓存和记录集中的差异返回给form.
@api.noguess
@api.returns
保证返回值的统一。将返回基于原始返回值指定model的记录集。