ODOO 新API修饰符

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的记录集。




  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值