Odoo中文网|Odoo实施培训
标题:
odoo 新API装饰器中one、model、multi的区别
[打印本页]
作者:
南帝
时间:
2018-6-30 22:19
标题:
odoo 新API装饰器中one、model、multi的区别
1.one装饰器详解
odoo新API中定义方式:
date=fields.Date(string="date",compute="_get_date")
@api.one
def _get_date(self):
self.date=fields.Date.today()
其实说的易懂些,等同于旧API的function 类型的简化版,但是需要特别注意到是one装饰类无返回值。
2. multi装饰类详解
odoo新API中定义方式:
1.本人一般将multi装饰类用于tree试图模式的报表中,如下图实例:
@api.multi
def action_done(self):
return {
'name': _(u'科目'),
'view_type': 'form',
"view_mode": 'tree,form',
'res_model': 'account.account',
'type': 'ir.actions.act_window',
'domain': [('id', 'in', return_list)],
'views': [(tree_id, 'tree'), (form_id, 'form')],
'view_id': [tree_id],
}
2.multi使用可以参考one装饰类,不过multi类有返回值。
3.model装饰类,该装饰类一般用于定义定时任务的方法中
类似于旧API:
def action_done(self,cr,uid,context=None):
pass
通过实例,可以看出model装饰类,是没有ids传入的,但是他可以有返回值。
总结:
1.其实通过上面的实例不难看出,model与multi可以有返回值,而one是没有返回值的,如果用one装饰器,即使写了return,也是没有作用的,虽然不会报错,但是如果不知道原因的瞎折腾也是比较折磨人的
2.还有一点区别的是multi与one装饰类是有ids传入的,而model没有ids传入。
作者:
smlqf1
时间:
2018-9-1 14:00
说的不错!
成語
https://www.2so.tw/
2018年09月01日
成語
中醫感冒
文學百科
https://www.2so.tw/
髮型百科
中醫感冒
https://www.2so.tw/
祝福語
欢迎光临 Odoo中文网|Odoo实施培训 (http://www.chinaodoo.net/)
Powered by Discuz! X3.2