Odoo12 ORM API ☞ Common ORM methods

Common ORM methods

search()
 根据search domain,返回匹配记录的记录集。可以返回匹配记录的子集(offsetlimit 参数)并进行排序(order 参数):

>>> # searches the current model
>>> self.search([('is_company', '=', True), ('customer', '=', True)])
res.partner(7, 18, 12, 14, 17, 19, 8, 31, 26, 16, 13, 20, 30, 22, 29, 15, 23, 28, 74)
>>> self.search([('is_company', '=', True)], limit=1).name
'Agrolait'

要检查是否有任何记录与域匹配,或者计算记录的数量
请使用 search_count()

create()
  根据字段值的字典或存储字典的列表,返回所创建的记录集:

>>> self.create({'name': "Joe"})
res.partner(78)
>>> self.create([{'name': "Jack"}, {'name': "William"}, {'name': "Averell"}])
res.partner(79, 80, 81)

write()
  将字段值写入其记录集中的所有记录。不返回任何结果。

self.write({'name': "Newer Name"})

browse()
  根据id或者ids在数据库中查找并返回一个记录集,当从外部Odoo获取记录ID时(例如,通过外部系统往返)或在旧API中调用方法时有用:

>>> self.browse([7, 18, 12])
res.partner(7, 18, 12)

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

if not record.exists():
    raise Exception("The record has been deleted")

  或者在调用可能删除了一些记录的方法之后:

records.may_remove_some()
# 只保留未删除的记录
records = records.exists()

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

>>> env.ref('base.group_public')
res.groups(2)

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

records.ensure_one() 
# 相当于但更清晰:
assert len(records) == 1, "Expected singleton"

猜你喜欢

转载自blog.csdn.net/sinat_23931991/article/details/84989313
Orm