什么是 ORM 方法和细节

创建方法: 创建具有指定值的新记录。获取多个字段值,并返回包含所创建记录的记录集

def create(self,vals):
    return super(class_name, self).create(vals)

写入方法: 使用给定的值更新具有给定字段值的记录。获取许多字段值,将它们写入其记录集中的所有记录。不归还任何东西

def write(self,vals):
    return super(class_name, self).write(vals)

搜索方法: 根据搜索域搜索记录。获取搜索域,返回匹配记录的记录集。可以返回匹配记录的子集(偏移和限制参数)并进行排序(顺序参数)

self.search([('customer','=',True)])
self.env['res.partner'].search(['partner','=',True])

浏览方法:将记录作为对象获取,允许使用点表示法浏览字段和关系。获取数据库 ID 或 id 列表并返回记录集,当从外部 Odoo 获取记录 ID 时非常有用(例如,通过外部系统往返)或者在旧 API 中调用方法时。

self.browse([7,8,9])
self.env['res.partner'].browse([7,8,9])

存在方法: 返回仅包含数据库中存在的记录的新记录集。可用于检查记录(例如,从外部获得)是否仍然存在。

records = records.exists()

ref 方法: 返回与提供的外部 id 匹配的记录的环境方法

self.env.ref('base.group_public')

ensure_one 方法: 检查记录集是否为单例(仅包含单个记录),否则引发错误

records.ensure_one()