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

一:纪录集API

model中的数据是以集合的形式使用的,因此可以使用集合运算来操作。

  • 集合运算符

    • 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中的记录

集合运算API:

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

二:运行环境API

运行环境保存了很多ORM相关的变量:数据库查询游标、当前用户、元数据,还存有缓存,可使用env来访问,如:

records.env.user

records.env.cr

records.env.context

更改运行环境:

  • sudo() 使用现有数据集创建一个新运行环境,得到一个基于新运行环境的数据集的拷贝
env['res.partner'].sudo().create({'name': "A Partner"})
  • with_context()
    一个参数时可用于替换当前运行环境的context,多个参数时通过keyword添加到当前运行环境context或单参数时设置的context
  • with_env() 完整替换当前运行环境

三: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

odoo10学习笔记九:Odoo10 API的更多相关文章

  1. go微服务框架kratos学习笔记九(kratos 全链路追踪 zipkin)

    目录 go微服务框架kratos学习笔记九(kratos 全链路追踪 zipkin) zipkin使用demo 数据持久化 go微服务框架kratos学习笔记九(kratos 全链路追踪 zipkin ...

  2. 多线程学习笔记九之ThreadLocal

    目录 多线程学习笔记九之ThreadLocal 简介 类结构 源码分析 ThreadLocalMap set(T value) get() remove() 为什么ThreadLocalMap的键是W ...

  3. golang学习笔记10 beego api 用jwt验证auth2 token 获取解码信息

    golang学习笔记10 beego api 用jwt验证auth2 token 获取解码信息 Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放 ...

  4. MDX导航结构层次:《Microsoft SQL Server 2008 MDX Step by Step》学习笔记九

    <Microsoft SQL Server 2008 MDX Step by Step>学习笔记九:导航结构层次   SQL Server 2008中SQL应用系列及BI笔记系列--目录索 ...

  5. python3.4学习笔记(九) Python GUI桌面应用开发工具选择

    python3.4学习笔记(九) Python GUI桌面应用开发工具选择 Python GUI开发工具选择 - WEB开发者http://www.admin10000.com/document/96 ...

  6. Go语言学习笔记九: 指针

    Go语言学习笔记九: 指针 指针的概念是当时学C语言时了解的.Go语言的指针感觉与C语言的没啥不同. 指针定义与使用 指针变量是保存内存地址的变量.其他变量保存的是数值,而指针变量保存的是内存地址.这 ...

  7. ZooKeeper学习笔记二:API基本使用

    Grey ZooKeeper学习笔记二:API基本使用 准备工作 搭建一个zk集群,参考ZooKeeper学习笔记一:集群搭建. 确保项目可以访问集群的每个节点 新建一个基于jdk1.8的maven项 ...

  8. Python学习笔记九

    Python学习笔记之九 为什么要有操作系统 管理硬件,提供接口. 管理调度进程,并且将多个进程对硬件的竞争变得有序. 操作系统发展史 第一代计算机:真空管和穿孔卡片 没有操作系统,所有的程序设计直接 ...

  9. Flink学习笔记:Flink API 通用基本概念

    本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz ...

随机推荐

  1. python函数内容

    在刚接触python的时候就有个疑问,什么是函数? python语言的函数和数学语言的函数有区别吗? 什么是函数 数学函数:给定一个数集A,假设其中的元素为x.现对A中的元素x施加对应法则f,记作f( ...

  2. Pycharm 2019 添加 docker 解释器

    打开docker的tls

  3. ubuntu pdfium

    dept_tool export PATH=`pwd`/depot_tools:"$PATH" gn工具在内

  4. 201871010111-刘佳华《面向对象程序设计(java)》第十周学习总结

    201871010111-刘佳华<面向对象程序设计(java)>第十周学习总结 实验八 异常.断言与日志 实验时间 2019-11-1 1.实验目的与要求 (1) 掌握java异常处理技术 ...

  5. Log日志级别从高到低排序 ERROR、WARN、INFO、DEBUG

    Log4j建议只使用四个级别,优先级从高到低分别是 ERROR.WARN.INFO.DEBUG.通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关.比如在这里定义了INFO级别,则应 ...

  6. 日常学习python

    一.条件语句 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 可以通过下图来简单了解条件语句的执行过程: Python程序语言指定任何非0和非空(nu ...

  7. 详解C++ STL set 容器

    详解C++ STL set 容器 本篇随笔简单介绍一下\(C++STL\)中\(set\)容器的使用方法及常见使用技巧. set容器的概念和性质 \(set\)在英文中的意义是:集合.\(set\)容 ...

  8. SDOI 2009 学校食堂

    洛谷 P2157 [SDOI2009]学校食堂 洛谷传送门 JDOJ 1924: [SDOI2009]学校食堂Dining JDOJ传送门 Description 小F 的学校在城市的一个偏僻角落,所 ...

  9. Python 可执行对象

    Python 可执行对象 eval/repr eval eval 可以执行字符串类型的表达式 (或 compile() 创建的代码对象(code object) ) 并返回执行结果 eval(expr ...

  10. Nginx Rewrite域名及资源重定向

    一.正则匹配     1.匹配规则         ^$  标识符匹配后面跟-一个字符串.匹配字符串后将停止对后续的正则表达式进行匹配,如location ^~/images/,在匹配了/images ...