2017-01-03 72 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)] 

使用管道「|」將幫助你獲得一個條件。