什麼是 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()