zoukankan      html  css  js  c++  java
  • odoo 二次开发的方法

    介绍

    二开时模型创建完毕并配好视图后对于基本的CRUD操作不需要再在代码中实现,框架会自动提供这些功能,但如果我们的开发需求不仅仅是对当前对象的CRUD时,就需要在框架原来方法的基础上扩展出一些自己所需要的操作。
    odoo8以前与odoo8以后使用两种不同的model接口形式(odoo8两者都可使用),odoo8以前old api中,记录ids和上下文环境均通过参数传入def old_api (self, cr, uid, ids, context),比较凌乱,不建议使用。以下内容均为new api内容。

     
     

    api装饰器

    @api.model

    封装不关联数据记录的Model对象,用于与数据库记录无关的逻辑方法,例如:create方法。

    @api.multi

    封装关联多个数据记录的Model对象,用于与数据库记录关联的处理方法。

    @api.one

    封装关联单条数据记录的Model对象,用于与单条数据库记录关联的处理方法。

    @api.onchange

    页面Fields值变更触发的调用方法,见下文中onchange

    @api.constrains

    对添加数据自定义约束。

    @api.constrains(‘field_name1’,’field_name2’,…) def _check_field(self):
    # 校验方法 不符合校验条件抛出异常

    model方法

    create 创建记录

    原型:def create(self, vals)
    vals:记录属性值字典

    search 查找记录

    原型:def search(self, args, offset=0, limit=None, order=None, count=False)
    args:domain格式的条件列表;offset:结果忽略条数;limit:最大查询条数

    read 读取记录属性值

    返回指定ids记录的指定fields字段值,采用列表加字典的数据结构([{},{},…])返回。
    原型:def read(self, fields=None, load='_classic_read'):
    fields:列表可指定要读取的属性名称

    search_read

    原型:def search_read(self, domain=None, fields=None, offset=0, limit=None, order=None)
    用法即search方法与read方法相结合。

    unlink 删除记录

    原型:def unlink(self)

    write 修改记录

    原型:def write(self, vals)
    vals:修改属性值字典

    onchange 页面变更触发事件

    页面Field值发生变更时由前端js框架触发调用,一般用于控制页面元素联动。
    原型:def onchange(self, values, field_name, field_onchange)

    default_get 设置缺省值

    原型:def default_get(self, fields_list)

    name_get 设置记录显示名

    原型:def name_get(self)

     


    作者:好大一只粽子
    链接:https://www.jianshu.com/p/3bea01aa8a17
    來源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
  • 相关阅读:
    【Android 工具类】经常使用工具类(方法)大全
    driver: Linux设备模型之input子系统具体解释
    ural 1057 Amount of degrees 【数位dp】
    Java8 Lambda表达式教程
    Java线程池
    NodeJS实战——创建基础应用并应用模板引擎
    【网络】代理服务器
    【HTTP】Wireshark过滤规则
    【HTTP】WireShark中获取Content-Encoding: gzip时的响应内容
    【python】判断字符串日期是否有效
  • 原文地址:https://www.cnblogs.com/zhaoweihang/p/9647437.html
Copyright © 2011-2022 走看看