odoo中的域前缀表达式
Domain prefix expression in odoo
我正在尝试修改域,但我必须首先了解此前缀表达式的逻辑:
<field name="partner_id" position="attributes">
<attribute name="domain">[('state', '=', 'validate'),
'|', '|',
'&',
('supplier', '=', to_supplier), ('customer', '=', to_customer),
'&',
('supplier', '=', True), ('customer', '=', True),
('is_project', '=', True)]
</attribute>
我试图将它转换成中缀表达式(为了我自己的理解)所以我得到了这个:
('state', '=', 'validate'),[[('supplier', '=', to_supplier),'&' ('customer', '=', to_customer)],'|',[('supplier', '=', True),'&', ('customer', '=', True)], '|',
('is_project', '=', True)]
以更简单的方式:
前缀:A,|,|,&,B,C,&,D,E,F
中缀 : A,(B&C | D&E| F)
不知道对不对
是的,这是正确的:
[ A,
'|',
'|',
'&', B, C,
'&', D, E,
F]
与
相同
[
'&'
A,
[
'|',
[
'|',
['&', B, C,],
['&', D, E,]
],
F
]
]
中缀是这样的:
[
A,
'&',
[
[
[B, '&', C,],
'|',
[D, '&',E,]
]
'|',
F
]
]
可以“简化”为:
A, '&', [B, '&', C, '|', D, '&', E, '|', F]
另外:在Odoo中,如果你不写任何运算符,有一个隐含的'&'
我正在尝试修改域,但我必须首先了解此前缀表达式的逻辑:
<field name="partner_id" position="attributes">
<attribute name="domain">[('state', '=', 'validate'),
'|', '|',
'&',
('supplier', '=', to_supplier), ('customer', '=', to_customer),
'&',
('supplier', '=', True), ('customer', '=', True),
('is_project', '=', True)]
</attribute>
我试图将它转换成中缀表达式(为了我自己的理解)所以我得到了这个:
('state', '=', 'validate'),[[('supplier', '=', to_supplier),'&' ('customer', '=', to_customer)],'|',[('supplier', '=', True),'&', ('customer', '=', True)], '|',
('is_project', '=', True)]
以更简单的方式: 前缀:A,|,|,&,B,C,&,D,E,F 中缀 : A,(B&C | D&E| F)
不知道对不对
是的,这是正确的:
[ A,
'|',
'|',
'&', B, C,
'&', D, E,
F]
与
相同[
'&'
A,
[
'|',
[
'|',
['&', B, C,],
['&', D, E,]
],
F
]
]
中缀是这样的:
[
A,
'&',
[
[
[B, '&', C,],
'|',
[D, '&',E,]
]
'|',
F
]
]
可以“简化”为:
A, '&', [B, '&', C, '|', D, '&', E, '|', F]
另外:在Odoo中,如果你不写任何运算符,有一个隐含的'&'