过滤表达式 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,并且语言不是英语,城市可以是比利时或德国的一条记录。
⚠️ |、& 运算符需要放在两个条件之前,这点要注意。
这种写法叫波兰表示法有兴趣的可以去了解一下。
运算符可以参考官方文档,这里就不一一举例了。