# domain表达式
# 常见表达式
Domain是个多条件的列表,每个条件是一个三元表达式:[(字段名,操作符,值), (字段名,操作符,值)]
[('create_id','=',user.id)]
# Domain使用场合
python
函数中的过滤器tree
form
视图的过滤器
# 字段名
当前模型的字段或者是通过点操作符访问当前模型的Many2one / Many2Many的对象的字段。
如果左边是Many2Many对象的时候,则表示左边只要任意一个值符合条件则符合条件。
# Domain操作符
操作符 | 功能 |
---|---|
= | 比较运算 等于 |
!= | 比较运算 不等于 |
> | 比较运算 大于 |
>= | 比较运算 大于等于 |
< | 比较运算 小于 |
<= | 比较运算 小于等于 |
in | 包含,判断值是否在元素的列表里面 |
not in | 不包含,判断值是否不在元素的列表里面 |
# 值
值进行筛选的变量,必须能通过操作符来和字段进行比较。
可以使用当前对象的字段
# 多条件的逻辑运算
波兰表示法的运算顺序
以二元运算为例,从左至右读入表达式,遇到一个操作符后跟随两个操作数时,则计算之,然后将结果作为操作数替换这个操作符和两个操作数;重复此步骤,直至所有操作符处理完毕。
['&', ('p.code', '=', 'CN'), ('p.code', '=', 'US')]