Odoo中文网|Odoo实施培训

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

装饰器方法api

[复制链接]

26

主题

28

帖子

232

积分

中级会员

Rank: 3Rank: 3

积分
232
跳转到指定楼层
楼主
发表于 2018-5-7 15:45:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 施程浩 于 2018-5-7 15:50 编辑

1.@api.multi装修器最常用来处理新的 API 记录集。在这里self是一个记录集,且方法通常会包括for 循环来循环它。
在某些情况下,编写该方法以用在单例模式︰ 包含不超过一条记录的记录集。 @api.one 装饰器在 9.0 被弃用,应该避免再使用。相反,我们应该使用 @api.multi 并在方法代码中添加一条行self.ensure_one(),以确保它是一个单例。
提到@api.one装饰器已被弃用,但仍然支持。出于完整性的考虑,可能需要知道它封装修饰器的方法,一次为为他提供一条记录,并它为做记录集迭代。在我们的方法能保证self是单例模式。每个单独的方法调用的返回值进行聚合为一个列表并返回。
2.@api.model装饰器是一个类级别的静态方法,它不使用任何记录集数据。为保持一致性, self仍然是一个记录集,但它的内容无关。请注意,能从用户界面中的按钮使用这种类型的方法。
其他一些装修器有更具体的用途,它们将与前面所描述的装饰器一起使用︰
3.@api.depends(fld1,...)用于计算字段函数,用于确保(重新)计算改变被触发 l
4.@api.constrains(fld1,...)用于验证函数,用于确保哪些约束生效被触发 l
5.@api.onchange(fld1,...)用于改变函数,用于确保表单上字段的动作被触发
特别是onchange方法可以向用户界面发送一条警告消息。例如,这可以警告用户刚刚输入的产品数量在库存中是不可用的,而不会阻止用户继续使用。这通过方法返回一个描述警告消息的字典来完成的︰
return {
         'warning': {
         'title': 'Warning!',
         'message': 'You have been warned'}
        }

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 16:25 , Processed in 0.012115 second(s), 11 queries , Xcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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