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')]