Skip to content

Odoo Domain 波兰表示法

domain表达式

常见表达式

Domain是个多条件的列表,每个条件是一个三元表达式:[(字段名,操作符,值), (字段名,操作符,值)]

[('create_id','=',user.id)]

Domain使用场合

  • python 函数中的过滤器
  • tree form 视图的过滤器

字段名

当前模型的字段或者是通过点操作符访问当前模型的Many2one / Many2Many的对象的字段。
如果左边是Many2Many对象的时候,则表示左边只要任意一个值符合条件则符合条件。

Domain操作符

操作符功能
=比较运算 等于
!=比较运算 不等于

|比较运算 大于 =|比较运算 大于等于 <|比较运算 小于 <=|比较运算 小于等于 in|包含,判断值是否在元素的列表里面 not in| 不包含,判断值是否不在元素的列表里面

值进行筛选的变量,必须能通过操作符来和字段进行比较。
可以使用当前对象的字段

多条件的逻辑运算

波兰表示法的运算顺序
以二元运算为例,从左至右读入表达式,遇到一个操作符后跟随两个操作数时,则计算之,然后将结果作为操作数替换这个操作符和两个操作数;重复此步骤,直至所有操作符处理完毕。

python
['&', ('p.code', '=', 'CN'), ('p.code', '=', 'US')]

最后更新于: