2017-01-03 74 views
-1

我odoo的模块中看到这个代码,它让我很迷惑,了解它是如何工作的混淆有关Python合作语法

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

我明白无形“会返回真|虚假基于2条件:('state','!=','draft')('communication','=',False)。当'状态'不同'草稿'时,第一个条件将会返回true,当'state'是'draft'时,将返回false。但是,什么是发生在两个条件之间的第二个条件和操作员是OR或AND

这也是本

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

整个代码,请帮我解释这一段代码,它是如何工作的

+0

这是一个元组的Python列表,它将被一些代码使用(在Odoo中,我猜,因为你标记了你的问题Odoo)遵循一个只依赖于那个代码的逻辑。了解这一点需要进一步了解该特定代码。 –

+0

我不认为这是元组列表,因为不可见是属性,它必须返回true false –

+0

您没有显示足够的代码。 “不可见”似乎是一个字符串,可能是一个字典键,元组列表是字典中的关联值。你应该引用更多的周围代码。 –

回答

3

对于使用 '与' 简单地使用 -

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

并在 'OR' 用例 -

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

使用管道“|”将帮助你获得一个条件。