Odoo中文网|Odoo实施培训

 找回密码
 立即注册
搜索
热搜: Odoo OpenERP 实施
查看: 6355|回复: 0
打印 上一主题 下一主题

ODOO 新API修饰符

[复制链接]

24

主题

26

帖子

125

积分

版主

Rank: 7Rank: 7Rank: 7

积分
125
跳转到指定楼层
楼主
发表于 2018-3-3 21:25:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|技术支持|开发手册|Odoo中文网-远鼎旗下odoo培训网站 ( 苏ICP备15039516号 )

GMT+8, 2024-5-1 09:20 , Processed in 0.011458 second(s), 9 queries , Xcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表