混淆 python 合作语法

Confuse about python cooperation syntax

我在 odoo 的一个模块中看到了这段代码,它让我很困惑,无法理解它是如何工作的

invisible': [('state', '!=', 'draft'), ('communication', '=', False)]

我知道 invisible 会 return true|false 基于 2 个条件:('state', '!=' , 'draft')('communication', '=', False)。当 'state' 与 'draft' 不同时,第一个条件 return 为真,当 'state' 为 'draft' 时为假。但是在第二个条件和 2 个条件之间的运算符中发生的是 OR 或 AND

这是整个代码

 <field name="communication" attrs="{'invisible': [('state', '!=', 'draft'), ('communication', '=', False)], 'readonly': [('state', '!=', 'draft')]}"/>

请帮我解释一下这段代码是如何工作的

要使用 'AND' 只需使用 -

invisible': [('state', '!=', 'draft'), ('communication', '=', False)]

如果 'OR' 使用 -

invisible': ['|', ('state', '!=', 'draft'), ('communication', '=', False)]

使用管道“|”将帮助您实现一个条件。