Skip to Content
Menu
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
To pytanie dostało ostrzeżenie
2 Odpowiedzi
1779 Widoki

I want to set field invisible, depends on value of many2one field:

field name="kind"/>

field name="render_path" invisible="kind != 'Render'"/>


but this field shows randomly.

 Any solutions?

Awatar
Odrzuć
Najlepsza odpowiedź

Hi,


Use the invisible attribute to make your field invisible based on the value of many2one field.

<field name="your_field_to_hide" invisible="many2one_field == 1"/>


In this example you can specify the id of the value of the many2one field.



Hope this helps.


Awatar
Odrzuć
Autor

It's working. Thanks a lot.

Najlepsza odpowiedź

Hi Piotr:

The direct value of a relation field(M2o,X2m) actually mapping the id of the co-model, not the 'name'.  And i suggest to use attrs + domain to determine the attr 'invisible' , you can try:

    <field name="kind"/>      
​(PS: suppose the field 'kind' is Many2one,  it's better defining it like 'kind_id'.)
 
  <field name="render_path" attrs="{'invisible': [('kind', '!=', <the 'Render' id in co-model>)]}"/> 

  

The domain doesn't support a relational syntax(ie: model.field),  so if you still want use the name like 'Render' as dependency,  you can additionally define a related field in the model:

    kind_name = fields.Char(related='kind.name')

and then in xml file:

    <field name="kind_name" invisible="1"/>  (this field must in the view)
   <field name="render_path" attrs="{'invisible': [('kind_name', '!=', 'Render' )]}"/>  
Awatar
Odrzuć
Powiązane posty Odpowiedzi Widoki Czynność
1
lip 25
667
0
lis 24
1317
0
paź 24
1631
1
paź 24
2271
0
paź 24
1351