开发者社区> openerp.hk> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

odoo 中的 domian 和 运算符

简介: 大家好, 我们今天主要来介绍一下odoo 中的 Domian 。 什么是Domain ? 简单的说就是一种条件语句,用来过滤您的数据。这些条件,通过使用Polish Notation(波兰表达式) 来定义。
+关注继续查看

大家好,

我们今天主要来介绍一下odoo 中的 Domian 。

什么是Domain ? 简单的说就是一种条件语句,用来过滤您的数据。这些条件,通过使用Polish Notation(波兰表达式) 来定义。

比如:

正 常 表 达 : ((A AND B) OR C ) OR (D AND E)
波兰表达式: ['|', '|', '&', A, B, C, '&', D, E]

解释:

步骤一:

从外面的运算符开始,将它移动到最前面

((A AND B) OR C ) OR (D AND E) => OR ((A AND B) OR C ) (D AND E)

注意:下划线的为移动的运算符

步骤二:

重复步骤一,直到所有运算符都移动至最左侧

OR ((A AND B) OR C ) (D AND E) => OR OR ((A AND B) C ) (D AND E)
OR OR ((A AND B) C ) (D AND E) => OR OR AND ((A B) C ) (D AND E)
OR OR AND ((A B) C ) (D AND E) => OR OR AND ((A B) C ) AND (D E)

步骤三:

去除所有的括号

polish_domain_notation

最后,让我们将表达式写入xml 文件

<field name="lot_id" domain="['|', '&amp;', ('product_id', '=', product_id), ('product_id.tracking', '!=', 'serial'), ('on_work_order_id', '=', id)]" groups="stock.group_production_lot"/>

注意: 在写xml 的时候,要用

'&amp;'

代替 ‘&’

接下来,

我们需要说说odoo中的 domain 运算符:

判断运算 : ! (否), | (或), & (与)

条件运算:
 '=', '!=', '<=', '<', '>', '>=', '=?', '=like', '=ilike', 'like', 'not like', 'ilike', 'not ilike', 'in', 'not in', 'child_of'

实例:[输入]
输入:
记录 1: Openerphk
记录 2: openerphk
记录 3: Opensource
记录 4: opensource
记录 5: Open
记录 6: openh
记录 7: Odoohk
记录 8: odoohk
记录 9: Odooopenerphk
记录 10: OdooOpenerphk

'like': [('input', 'like', 'open')] - 返回区分大小写的 (通配符 - '%open%') 搜索的结果.
O/p: open, opensource, openerphk, Odooopenerphk

'not like': [('input', 'not like', 'open')] - 然后结果与大小写敏感不匹配(通配符 - '%open%') 搜索的结果.
O/p: Openerphk, Opensource, Open, Odoohk, odoohk, OdooOpenerphk

'=like': [('name', '=like', 'open')] - 返回恰好是 (= 'open') 大小写敏感搜索的结果.
O/p: open

'ilike': [('name', 'ilike', 'open')] - 返回恰好是(通配符 - '%open%') 大小写不敏感的搜索结果.
O/p: Openerphk, openerphk, Opensource, opensource, Open, open, Odooopenerphk, OdooOpenerphk

'not ilike': [('name', 'not ilike', 'open')] - 返回结果与大小写敏感不匹配 (通配符 - '%open%') 的搜索结果.
O/p: Odoohk, odoohk

'=ilike': [('name', '=ilike', 'open')] - 返回结果恰巧是 (= 'open' or 'Open') 大小写不敏感的搜索结果.
O/p: Open, open

'=?':name = 'odoo' parent_id = False [('name', 'like', name), ('parent_id', '=?', parent_id)] - 返回名称域结果 & True
name = 'odoo' parent_id = 'openerp' [('name', 'like', name), ('parent_id', '=?', parent_id)] - 返回名称域结果 & parent_id 域结果
'=?' 是一个捷径术语,只要右侧为None 或者False ,结果就是TRUE。'=?' 在一些情况类似 '=' 

'in': [('value1', 'in', ['value1', 'value2'])] - 此运算符会检查 value1 是否在右侧的列中出现.

'not in': [('value1', 'not in', ['value2'])] - 操作符将检查value1在右项列表中是否不存在;

* “in”和“not in”需要使用值列表/元组,  '=' 和 '!=' 可以应用于字符串

'=': value = 10 [('value','=',value)] 

'!=': value = 15 [('value','!=',value)] 

'child_of': parent_id = '1' #Agrolait 'child_of': [('partner_id', 'child_of', parent_id)] - 返回给与的parent_id中partner_id左右列表

'<=', '<', '>', '>=': 这些运算符主要用于比较日期。-
[('date', '>=', date_begin), ('date', '<=', date_end)].

当然,您也可以比较 int 或者 float .

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【图像检测-显著图】基于失真提示实现鱼眼图显著图计算附matlab代码和论文
【图像检测-显著图】基于失真提示实现鱼眼图显著图计算附matlab代码和论文
18 0
带你读《云原生应用开发 Operator原理与实践》第三章 Kubebuilder 原理3.3 Controller-runtime 模块分析(四)
带你读《云原生应用开发 Operator原理与实践》第三章 Kubebuilder 原理3.3 Controller-runtime 模块分析
94 0
带你读《云原生应用开发 Operator原理与实践》第三章 Kubebuilder 原理3.3 Controller-runtime 模块分析(四)
带你读《云原生应用开发 Operator原理与实践》第三章 Kubebuilder 原理3.3 Controller-runtime 模块分析
126 0
于翔:云计算尚难入企业核心
本文讲的是于翔:云计算尚难入企业核心,对大多数的企业而言,目前的云计算正处于“看上去很美,但实践起来尚有距离”的阶段。随着云计算厂商理念推广的逐步深入,云计算在资源最大限度利用、IT成本可精确量化、实现更广泛信息交付等方面的优势已经得到了用户的肯定。
925 0
【ATF】钱正平:大规模实时计算及其在阿里的应用与创新
2016 ATF阿里技术论坛中,阿里云高级专家钱正平深入分享了在大规模实时计算及其在阿里的应用与创新经验。在他看来,用户需求是真正驱动分布式计算领域发展和变化的核心因素。除了一些比较有特色的技术点之外,还有五大经验:审计、动态重构、持续维护、异常处理和数据特例。
6385 0
已知 $AB$, 求 $BA$
设 $A,B$ 分别是 $3\times 2$ 和 $2\times 3$ 实矩阵. 若 $\dps{AB=\sex{\ba{ccc}  8&0&-4\\  -\frac{3}{2}&9&-6\\  -2&0&1  \ea}}$, 求 $BA$.
757 0
+关注
openerp.hk
OpenERP.HK 国际业务覆盖老挝、加拿大、美国、印度、韩国等地,国内业务覆盖福建、重庆、四川、广州、上海、宁波、陕西、深圳、山东、云南等城市。 2016 年,OpenERP.HK 获中国电子报《成都市信息消费优秀解决方案》 2017年6月,上线saas平台,提供3000
11
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载