一个域是一个criteria(度量标准)列表,每个criterion(标准尺度)是一个三元列表或者元组:field_name,operator,value。
field_name(str)
当前模型的字段名,或者使用点表示法的(穿越Many2one(多对一)的)关系。例如:'street'或者'partner_id.country'。
operator(str)
操作符,用于field_name与value之间的比较。
有效的操作符:
-
- = 等于
- != 不等于
- > 大于
- >= 大于等于
- < 小于
- <= 小于等于
- =? 未设置或等于(如果值要么为None或者False,返回True,其他类似=)
- =like 将field_name与值模式匹配,模式中"_"匹配任意单字符,"%"匹配任意的零个或者多个字符
- like 将field_name与%value%进行模式匹配,类似于=like,但是匹配前value被%包装
- not like 不匹配%value%模式
- ilike 不区分大小写 like
- not ilike 不区分大小写 not like
- =ilike 不区分大小写=like
- in 存在于 value,value 应为items列表
- not in 不存在于value
- child_of 是value记录的子代(子孙)
value 必须与命名的字段是可比较的(通过操作符)
域条件(Domain criteria)可以使用逻辑运算符(以前缀的形式)进行组合:
- '&' 逻辑AND,默认操作将criteria与下一条crtiteria进行组合, Arity 2 (两个参数),使用下两个criteria和combinations
- '|' 逻辑或,Arity 2 (两个参数)
- '!' 逻辑非 Arity (1个参数)
例如:
[('name','=','ABC'), ('language.code','!=','en_US'), '|',('country_id.code','=','be'), ('country_id.code','=','de')]
(name is 'ABC')AND (language is NOT english)AND (country is Belgium OR Germany)