odoo10 ORM 使用说明(自用)

一 模型使用

模型的属性结构:

_name 业务对象的名称
_rec_name 可选的name字段名称,供osv的name_get()方法使用,默认值name
_inherit 如果设置了name属性,它的取值是单个或多个父级的模型名称;没有设置name属性时,只能是单个模型名称
_order 在搜索的时候的默认排序,默认值是id
_auto 指定该表是否需要创建,默认值是True,如果设置成False需要重写init方法来创建表
_table 当_auto设置成false时,该值为创建的表名;默认情况下会自动生成一个
_inherits 定义上级模型关联使用的外键

1 ORM的CRUD

- create(vals)         增
- browse([ids])        查
- unlink()             删
- write(vals)          改
    int或float型字段,给定的值须为对应的整型或浮点型
    布尔型字段,对应的值须为bool型
    Selection字段,给定的值须符合条件
    Many2one字段,给定的值须与对应的数据库记录相符
    其他无关联关系的字段使用字符串作值
    One2many和Many2many字段通过一个特殊的格式命令来操纵对应字段值,通过一系列三元组按顺序来对数据进行操作,下面是一些常用的:
        (0, _, values) 为指定的value字典添加一条新记录
        (1, id, values) 更新一条现有记录,条件是id为指定id且value在指定values中,不能在create方法里使用
        (2, id, _) 将指定id的数据从数据集中删除并从数据库删除,不能在create里使用
        (3, id, _) 将指定id的数据从数据集中删除但不从数据库删除,不能用在One2many关系及create里
        (4, id, _) 将指定id的数据添加到数据集中,不能用在One2many关系上
        (5, _, _) 将集合的所有数据删除,相当于当3作用于每条记录上
        (6, _, ids) 使用ids列表里匹配的所有数据替换当前记录,相当于先执行5再循环执行4
        
read([fields]) 从self里读取指定的字段,专供rpc使用
read_group(domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True) 得到一个通过groupby参数分组后的记录的列表

2 searching

- search(args[, offset=0][, limit=None][, order=None][, count=False])
    根据args参数里的domain表达式来搜索所有记录,参数列表:
        1.args domain表达式,为空时返回所有记录
        2.offset (int) 从第几条记录开始取
        3.limit (int) 返回记录行数的最大值
        4.order (str) 排序的字段
        5.count (bool) 当值为True的时候只返回匹配记录的条数
    
- search_count(args)
    返回根据给定domain表达式参数查询所得到的记录条数

- name_search(name='', args=None, operator='ilike', limit=100)
    返回根据name条件来查询,并满足args指定的domain表达式的记录集合
        name (str) -- 用来匹配的name字符串
        args (list) -- domain表达式列表
        operator (str) --  用来匹配的操作符,如: 'like' , '='.
        limit (int)
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值