查看“域表达式”的源代码
←
域表达式
跳转至:
导航
、
搜索
因为以下原因,你没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看并复制此页面的源代码:
域被用来筛选数据记录。它们使用特殊的语法,以便于Odoo ORM 将它们解析后生成对应的SQL WHERE数据库筛选语句。 域表达式是一个条件列表,每个条件是一个形如('field_name', 'operator', value')的元组。比如,以下这个就是只有一个条件的有效的域表达式: [('is_done','=',False)]. 以下就是每个元素的介绍: '''filed_name''' 是需要筛选的字段,它可以使用点(.)来访问关系模块的字段。 '''value''' 是一个Python表达式的值。它可以使用字符值,比如:字符串,数字,布尔值,或则列表、某个字段、用户在context中自定义的有效的值。这里有两种在实际环境中,可能的出现在context中的可用于domains的值: 当在客户端使用时,比如在窗口动作或字段的属性值中,传入当前视图中的有效的字段的值。但是不能使用点(.)拼接它们。 当在服务器端使用时,比如在记录规则和服务器Python代码中,当前记录是一个对象,就可以使用点(.),访问它的字段。 '''operator''' 可以为: 常用的操作符:<,>,<=,>=,=,!=。 '=like'通配符,使用下划线(_)时,匹配一个任意字符,使用百分号(%)时,匹配多个字符。 'like'匹配一个’%value%’的字符串。’ilike’与此类似但不区分大小写。‘not like’和‘not ilike’也可以使用 'child of'在层级关系中,筛选子集 'in'和’not in’筛选是否在一个列表里面,所以,给的值应该是个list。当在’to-many’的关系字段中,‘in’的作用和contains的作用一样 domain表达式是一个包含多项内容的list,因此,可以包含多个条件表达式元组。 默认情况下(隐含),这些条件之间是用AND逻辑符连接的,也就是说,它只返回满足所有条件的记录集。 显示的逻辑连接符也可以使用:and连接符(&,默认使用),或连接符(|)。这些连接符后面跟着两项内容,以递归的方式。我们一会儿会看见具体的实现。 感叹号(!),是非操作符(NOT),作用于紧挨它的后一个项。因此,它应该出现在否定项的前面。比如,['!', ('is_done','=',True)],这个表达式将筛选所有的没有完成的记录。 “下一项”也可以作为操作符作用于它的下一项,也就是嵌套定义。举一个例子,可能帮我们更好的理解这句话。 我们可以在服务器端的记录规则中找到如下类似的表达式: ['|', ('message_follower_ids', 'in', [user.partner_id.id]), '|', ('user_id', '=', user.id), ('user_id', '=', False)] 这个域筛选了,当前用户在记录的关注者列表中,或当前用户是负责人,或负责人字段为空值的所有记录。 第一个‘|’(OR)操作符筛选出的结果是,满足在关注者列表中的条件的所有记录,加上满足后面条件的所有记录。而后面一个条件又是另外两个条件联合查询:用户ID是当前用户或则为空值的记录。 下面这幅图能很好解释这种操作符的原理: [[文件:二叉树.jpg]] 上一节:[[上下文数据]] 下一节:[[窗体视图]]
返回至
域表达式
。
导航菜单
个人工具
登录
命名空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
odoo 中文开发手册
odoo 开发参考
odoo 实施笔记
Odoo 最佳方案
关于 OdooV
Odoo FAQ
工具
链入页面
相关更改
特殊页面
页面信息
友情链接
odoo官网
odoo中文网
odoo实施