zoukankan      html  css  js  c++  java
  • odoo10学习笔记九:Odoo10 API

    原文地址:http://www.cnblogs.com/ygj0930/p/7150645.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

     

    到我的github上查看更多项目:https://gith
  • 相关阅读:
    vue--父组件向子组件传参--父组件定义v-bind:参数名--子组件接收props----子组件调用父组件的方法(子组件向父组件传参)父组件@事件名称--子组件接收this.$emit
    vue--组件切换--带动画效果---component
    js string类型转换成数组对象类型---eval
    Vue--创建组件-template---定义私有组件
    vue--自定义标签属性--用于多个事件共同引用一个组件--但是两个事件要实现的功能不同-避免冲突
    vue--组件动画效果--淡入淡出--位移
    vue---向后台添加数据--删除数据--事件方法传参---在单页面配置url请求地址--暂时没有用到webpack
    vscode安装Bootstrap插件--方便补全代码段
    vue-resource--ajax请求数据
    生命周期演示--从加载--渲染--销毁
  • 原文地址:https://www.cnblogs.com/qjtjh/p/8269673.html
Copyright © 2011-2022 走看看