最近odoo(原OpenERP)V8已经发布。在新的 API 方法中引入了装饰器。在 models.py
方法需要用 @api.one
修饰或 @api.multi
.
转介 odoo documentation我无法确定确切的用途。谁能详细解释一下。
谢谢。
最佳答案
通常,两个装饰器都用于装饰记录式方法,其中 ' self
' 包含 记录集 (s)。让我简要说明何时使用 @api.one
和 @api.multi
:
1. @api.one
:
@api.one
定义方法(自我,参数):
返回 self.name
可以在记录和传统风格中调用,例如:
# recs = model.browse(cr, uid, ids, context)
names = recs.method(args)
names = model.method(cr, uid, ids, args, context=context)
2.
@api.multi
:self
' 是一个记录集。该方法通常定义对记录的操作。这样的方法:@api.multi
定义方法(自我,参数):
可以在记录和传统风格中调用,例如:
# recs = model.browse(cr, uid, ids, context)
recs.method(args)
model.method(cr, uid, ids, args, context=context)
何时使用:
这并不总是被 Web 客户端支持,例如按钮操作
方法。
在这种情况下,你应该使用 @api.multi 来装饰你的方法,并且可能在调用 self.ensure_one()
方法定义。
关于openerp - odoo 中何时使用 api.one 和 api.multi |开瓶器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27988565/