问题
I am trying to hide a field called street2
in an existing OpenERP7 view only if a field called is_company
values True
. I have to do this using inheritance, so I created a new view with a form called res.partner.extended.form
, which inherits from the view I want to modify (base.view_partner_form
).
To make street2
invisible, I left my inherited form this way:
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record model="ir.ui.view" id="res_partner_extended_view">
<field name="name">res.partner.extended.form</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form" />
<field name="type">form</field>
<field name="arch" type="xml">
<xpath expr="/form//field[@name='street2']" position="attributes">
<attribute name="invisible">1</attribute>
</xpath>
</field>
</record>
</data>
</openerp>
But this way, I make the field invisible, with any condition. I need to make it invisible only if is_company
values True
. So I tried several ways, and I am not able to manage it. The next lines are one of my failed attempts:
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record model="ir.ui.view" id="res_partner_extended_view">
<field name="name">res.partner.extended.form</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form" />
<field name="type">form</field>
<field name="arch" type="xml">
<xpath expr="/form//field[@name='street2']" position="attributes">
<attribute name="invisible">[('is_company', '=', 'True')]</attribute>
</xpath>
</field>
</record>
</data>
</openerp>
Anyone knows how to manage this? Am I close to the answer? Any help will be appreciated a lot. Thank you in advance.
回答1:
Try this,
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record model="ir.ui.view" id="res_partner_extended_view">
<field name="name">res.partner.extended.form</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form" />
<field name="type">form</field>
<field name="arch" type="xml">
<field name='street2' position="attributes">
<attribute name="attrs">{'invisible': [('is_company', '=', True)]}</attribute>
</field>
</field>
</record>
</data>
来源:https://stackoverflow.com/questions/26054744/how-to-hide-an-existing-field-in-an-openerp7-view