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.model  
    def action_done(self):  
         .......  
         .......

类似于旧API:

def action_done(self,cr,uid,context=None):  
        pass

通过实例,可以看出model装饰类,是没有ids传入的,但是他可以有返回值。

总结:

1.其实通过上面的实例不难看出,model与multi可以有返回值,而one是没有返回值的,如果用one装饰器,即使写了return,也是没有作用的,虽然不会报错,但是如果不知道原因的瞎折腾也是比较折磨人的

2.还有一点区别的是multi与one装饰类是有ids传入的,而model没有ids传入。

odoo API装饰器one、model、multi的区别的更多相关文章

  1. Odoo的@api.装饰器

    转载请注明原文地址:https://www.cnblogs.com/cnodoo/p/9281437.html Odoo自带的api装饰器主要有:model,multi,one,constrains, ...

  2. 【转】odoo 新API装饰器中one、model、multi的区别

    http://blog.csdn.net/qq_18863573/article/details/51114893 1.one装饰器详解 odoo新API中定义方式: date=fields.Date ...

  3. 【转】odoo装饰器:model

    model装饰器的作用是返回一个集合列表,一般用来定义自动化动作里面,该方法无ids传入. 应用举例: 定义columns langs = fields.Selection(string=" ...

  4. odoo10 api 装饰器

    http://www.cnblogs.com/kfx2007/p/3894297.html one:装饰record-style方法中的self为单一实例,被装饰的方法将会在每一条记录中循环调用,返回 ...

  5. odoo api介绍

    odoo api修饰器介绍与应用 参考文档:https://www.cnblogs.com/kfx2007/p/6093994.html 一.one one的用法主要用于self为单一集合的情况,被o ...

  6. Java设计模式12:装饰器模式

    装饰器模式 装饰器模式又称为包装(Wrapper)模式.装饰器模式以多客户端透明的方式扩展对象的功能,是继承关系的一个替代方案. 装饰器模式的结构 通常给对象添加功能,要么直接修改对象添加相应的功能, ...

  7. 为什么 Python 没有函数重载?如何用装饰器实现函数重载?

    英文:https://arpitbhayani.me/blogs/function-overloading 作者:arprit 译者:豌豆花下猫("Python猫"公众号作者) 声 ...

  8. 设计模式-装饰器模式(Decrator Model)

    文 / vincentzh 原文连接:http://www.cnblogs.com/vincentzh/p/6057666.html 目录 1.概述 2.目的 3.结构组成 4.实现 5.总结 1.概 ...

  9. 【转】Odoo装饰器: one装饰

    one装饰器的作用是对每一条记录都执行对应的方法,相当于traditional-style中的function,无返回值! 应用举例: 定义的columns now = fields.Datetime ...

随机推荐

  1. lepus部署

    lepus部署 lepus安装 cd /usr/local/src/lepus_v3.7/ cd python/ sh install.sh mysql配置 mysql -uroot -p'zaBBi ...

  2. Silverlight子窗口(ChildWindow)传递参数到父窗口演示

    在企业级项目中,子窗口(ChildWindow)是一个常用控件,其展示方式是以弹出窗口来显示信息. 这里我将演示,子窗口传递参数到父窗口的方法.由于我的开发环境都是英文环境,所以部分中文可能显示不正常 ...

  3. 泡泡机器人SLAM 2019

    LDSO:具有回环检测的直接稀疏里程计:LDSO:Direct Sparse Odometry with Loop Closure Abstract—In this paper we present ...

  4. spring之jdbcTemplate

    spring的另一个功能模块data access对于数据库的支持 spring data access第一个helloword案例: 使用java程序实现访问配置 1.导包 2.测试案例 @Test ...

  5. C语言四则运算编程

    #include<stdio.h> #include<stdlib.h> void main() { int c,e,f; int x; while(1) { x=rand() ...

  6. Q他中的乱码再理解

    Qt版本有用4的版本的也有用5的版本,并且还有windows与linux跨平台的需求. 经常出现个问题是windows的解决了,源代码放到linux上编译不通过或者中文会乱码,本文主要是得出一个解决方 ...

  7. bootstrap阶段测验【问题】

  8. scrapy分布式

    开始之前我们得知道scrapy-redis的一些配置:PS 这些配置是写在Scrapy项目的settings.py中的! #启用Redis调度存储请求队列SCHEDULER = "scrap ...

  9. cxgrid动态创建列

    cxgrid动态创建列 procedure TFrmRuleEdit.CreateCols;varColumn: TcxGridDBColumn;begincdsPowerPrj.First;whil ...

  10. Delphi中break,exit,abort跳出循环的比较

    http://www.delphitop.com/html/hanshu/104.html Delphi中break,exit,abort跳出循环的比较 exit: 退出函数体abort: 遇到异常, ...