过滤表达式 Domain
在常用的 ORM 方法章节中提到了 search
查询方法,这一章节就大概的讲解一下,Odoo 的 Domain
过滤表达式。
Domain
是一个列表类型的参数,他的每一个元素可以是一个三个元素组成的元组 '(字段名
, 运算符
, 值
)',或者是 |
(或)、 &
运算符, 例如:
[('name' , '=' , 'ABC' ),
('language.code' , '!=' , 'en_US' ),
'|' , ('country_id.code' , '=' , 'be' ),
('country_id.code' , '=' , 'de' )]
也可以写成:
[ '|' ,
('country_id.code' , '=' , 'be' ),
('country_id.code' , '=' , 'de' ),
'&',
('name' , '=' , 'ABC' ),
('language.code' , '!=' , 'en_US' ),
]
这个 Domain 的意思是,搜索一个名称为 ABC
,并且语言不是英语,城市可以是比利时或德国的一条记录。
⚠️ |
、&
运算符需要放在两个条件之前,这点要注意。
这种写法叫波兰表示法有兴趣的可以去了解一下。
运算符可以参考官方文档,这里就不一一举例了。