Я пытаюсь сделать поле невидимым при условии в представлении формы Odoo. Когда отмечен "Можно продать" ==> "Менеджер по продукту" должен быть невидимым:
Я пробовал использовать атрибут «невидимый» с доменом в унаследованном представлении формы товаров:
<record model="ir.ui.view" id="product_template_form_inherit">
<field name="name">product.template.product.form</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="product.product_template_only_form_view" />
<field name="arch" type="xml">
<field name="product_manager" position="attributes">
<attribute name="invisible">[('sale_ok', '=', True)]</attribute>
</field>
</field>
</record>
Когда поле sale_ok истинно, поле product_manager фактически скрыто. Но когда поле sale_ok снова становится ложным, поле product_manager остается скрытым.
Я также попробовал это вместо этого:
<field name="product_manager" attrs="{'invisible': [('sale_ok', '=', True)]}"/>
Это тоже не работает.
Я также пробовал другие домены, например:
[('sale_ok', '==', True)]
[('sale_ok', '!=', False)]
[('sale_ok', '=', 'True')]
Не совсем уверен, что здесь не так ... Как сделать это (не) видимым, когда (не) отмечен?
В конечном итоге я добиваюсь следующего: когда установлен флажок, форма должна немедленно измениться без сохранения. Поля нужно добавлять и удалять. Это возможно?
Изменить:
Теперь я могу скрыть / показать менеджера по продукту с ответом ChesuCR. Однако, когда я пробую то же самое с "loc_rack" (Storage Location ==> Rack), появляется ошибка:
Field(s) `arch` failed against a constraint: Invalid view definition
Error details:
Element '<field name="loc_rack">' cannot be located in parent view
Это код, который я использовал:
<field name="loc_rack" position="replace">
<field name="loc_rack" attrs="{'invisible': [('sale_ok', '=', True)]}"/>
</field>
Почему я не могу сделать то же самое с этим полем?