2017-01-03 4 views
-1

ich diesen Code in einem Modul von odoo sah und es macht mich verwirren zu so verstehen, wie esVerwirren über Python Zusammenarbeit Syntax

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

Ich verstehe, dass unsichtbar ‚funktioniert return true ll | false basierend auf 2 Bedingungen: ('Zustand', '! =', 'Entwurf') und ('Kommunikation', '=', Falsch). Die erste Bedingung wird 'wahr' zurückgeben, wenn 'Zustand' anders ist 'Entwurf' und 'falsch', wenn 'Status' 'Entwurf' ist. Aber was ist in der zweiten Bedingung und Operator zwischen zwei Bedingungen geschehen OR oder AND

Dies ist ganz Code dieser

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

Bitte mir helfen, dieses Stück Code zu erklären, dass, wie es funktioniert

+0

Dies ist eine Python-Liste von Tupeln, die von irgendeinem Code verwendet werden (in Odoo, ich schätze, da du deine Frage Odoo getaggt hast) nach einer Logik, die nur von diesem Code abhängt. Um dies zu verstehen, bedarf es weiterer Kenntnisse dieses spezifischen Codes. –

+0

Ich glaube nicht, dass dies eine Liste von Tupeln ist, weil unsichtbar ist ein Attribut, es muss True False zurückgeben –

+0

Sie zeigen nicht genug Code. 'unsichtbar' scheint eine Zeichenkette zu sein, wahrscheinlich ein Diktatschlüssel, wobei die Tupelliste der zugehörige Wert im Diktat ist. Sie sollten mehr von dem umgebenden Code zitieren. –

Antwort

3

Für die Verwendung von 'AND' einfach verwenden -

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

und im Fall von 'oder' Verwendung -

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

mit Rohr "|" wird dir helfen, eine Bedingung wahr zu bekommen.