转载请转载原文地址:http://www.javashuo.com/article/p-wogjeceq-md.html html
一:纪录集API数据库
model中的数据是以集合的形式使用的,所以能够使用集合运算来操做。缓存
集合运算符app
集合运算API:dom
if record.exists():
二:运行环境API函数
运行环境保存了不少ORM相关的变量:数据库查询游标、当前用户、元数据,还存有缓存,可以使用env
来访问,如:学习
records.env.userspa
records.env.cr翻译
records.env.contextcode
更改运行环境:
env['res.partner'].sudo().create({'name': "A Partner"})
三:ORM API
search() 接收domain表达式参数,返回符合条件的数据集合,能够经过limit,offset参数返回一个子集,还可经过order参数对数据排序。
self.search([('is_company', '=', True), ('customer', '=', True)])
search_count():统计知足条件的数据数量
create() 接收多个字段、值的组合,返回新建立的数据集:
self.create({'name': "New Name"})
write() 接收多个字段、值组合,会对指定数据集的全部记录进行修改,不返回:
self.write({'name': "Newer Name"})
browse() 根据数据的id或者一组id来查找,返回符合条件的数据集合:
self.browse([7, 18, 12])
exists() 获得某个数据集中保留在数据库中的那部分(可用于检查数据集是否为空):
if not record.exists(): raise Exception("The record has been deleted")
ref() 运行环境函数,根据提供的外部id返回对应的数据记录:
env.ref('base.group_public')
ensure_one() 检验某数据集是否只包含单条数据,若是不是则报错:
records.ensure_one()
四:搜索函数
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=, operator='', limit=)
返回根据name条件来查询,并知足args指定的domain表达式的记录集合
name (str) -- 用来匹配的name字符串 args (list) -- domain表达式列表 operator (str) -- 用来匹配的操做符,如: 'like' , '='. limit (int) -- 可选参数,最多返回的记录行数
五:字段或视图查询
字段查询:
fields_get([fields][, attributes]) 以数据字典的形式返回字段的定义,经过继承得来的字段也会在其中,string/help/selection属性会自动被翻译 fields参数是字段列表、为空或不传返回全部字段 attributes 可指定字段的属性、为空或不传时返回所有的
视图查询:
fields_view_get([view_id | view_type='']) 返回指定视图的具体组成如:字段,模型,视图结构 参数列表: view_id 视图的id或None view_type 当view_id参数为空时指定视图类型如form,tree等 toolbar 参数为true时将上下文动做包含在内
default_get(fields) 获取指定字段的默认值
name_get() 以列表形式返回每条记录的描述,默认是display_name字段
name_create(name) 至关于调用create方法建立一条新记录而只设置一个display_name