Odoo12 ORM API ☞ Domains

Domains

Domains是一个元组列表,每个元组是包含(field_name,operator,value)的三元组(列表或元组),其中:
field_name (str)
当前模型的字段名称,或使用点符号得到Many2one模型中的字段。

operator (str)
用于将field_name与value进行比较的运算符。有效的运算符有:

=
 等于
!=
 不等于
>
 大于
>=
 大于等于
<
 小于
<=
 小于等于
=?
 未设置或相等(如果value为None或False,则返回true,否则以 = 计算)
=like
 将field_name与值模式匹配。模式中的下划线_代表(匹配)任何单个字符;百分号%匹配任何零个或多个字符的字符串。
like
 将field_name与%value%pattern匹配。与=相似,但在匹配前用’%'包装值
not like
 与%value%模式不匹配
ilike
 不区分大小写将field_name与值模式匹配
not ilike
 不区分大小写比较field_name与%value%模式不匹配
=ilike
 不区分大小写将field_name与值模式匹配
in
 等于任何值的值,值应该是项目列表
not in
 不等于任何值
child_of
 值记录的子集

需考虑模型的语义(即遵循_parent_name命名的关系字段)。
value
变量类型,必须与命名字段相当(通过运算符)


可以使用前缀形式的逻辑运算符组合域标准:
’&'
逻辑AND,默认操作将标准相互组合,Arity 2(使用接下来的2个标准或组合)。

’|'
逻辑OR,arity 2。

’!'
逻辑NOT,arity 1。

主要是否定标准的组合
个别标准通常具有否定形式(例如= - >!=, - > =),这比否定正确更简单。

Example
要搜索来自比利时或德国的ABC合作伙伴,其语言不是英语:

[('name','=','ABC'),
 ('language.code','!=','en_US'),
 '|',('country_id.code','=','be'),
     ('country_id.code','=','de')]

domian如下:

    (name is 'ABC')
AND (language is NOT english)
AND (country is Belgium OR Germany)

猜你喜欢

转载自blog.csdn.net/sinat_23931991/article/details/85062441