新api的one和multi有什么区别?
-
[quote author=Jeff link=topic=17330.msg31153#msg31153 date=1444916784]
@api.one的最终返回结果是会把每次执行的结果合并成为一个list再返回。
这句不太懂,举个栗子?
[/quote]
我理解的应该是这样子的。假如有一个方法定义:
def test(self,cr,uid,ids,context=None):
print ids
return ids*2
如果前加的是@api.one,并且ids参数转入的是[1,2,3]的话,这个方法会执行三次,依次输出的ids是:
>>>1
>>>2
>>>3
虽然执行了三次,但对其它调用该方法的地方来说,不可能需要接收三个返回值,所以它就把这多个返回值合并成了一个list返回,这里的结果应该是[2,4,6]
如果前面加的是@api.multi,那就好理解了,方法只执行一次,输出的结果也只有一次,是[1,2,3],返回值是[1,2,3,1,2,3]