Odoo中的记录集

时间:2024-12-01 08:04:43

转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826218.html

一:record set

1:获取记录集

1)在@api.multi修饰器修饰的函数中,self就是记录集。

2)在模型、controller方法中执行search()操作时,返回的就是符合查询条件的记录集。

2:从记录集可以获取什么

  • ids 得到当前记录集的id列表
  • ensure_one() 验证一个记录集合是否只包含一条记录
  • exists() 返回当前记录集中真正存在的子集,并把缓存中未删除的部分做标记,可用于判断if record.exists():
  • filtered(func) 返回满足func参数内条件的记录集合,参数可以是一个函数或者用.分隔的字段列表
  • sorted(key=None, reverse=False) 返回按key排序之后的记录集,key参数可以是一个返回单个key的函数或字段名称或为空,reverse参数为True时即为倒序
  • mapped(func) 将func函数应用到所有记录上,并返回记录列表或集合,可用于对记录集作处理

3:记录集的集合运算

  • 集合运算符

    • record in set返回record是否在set中,record须为单条记录,record not in set反之
    • set1 <= set2 返回set1是否为set2的子集
    • set1 >= set2 返回set2是否为set1的子集
    • set1 | set2 返回set1和set2的并集
    • set1 & set2 返回set1和set2的交集
    • set1 - set2 返回在集合set1中但不在set2中的记录