如何在OpenERP 7视图中隐藏现有字段?

时间:2014-09-26 07:58:39

标签: forms python-2.7 view openerp openerp-7

仅当名为street2的字段值为is_company时,我才会在现有的OpenERP7视图中隐藏名为True的字段。我必须使用继承来执行此操作,因此我使用名为res.partner.extended.form的表单创建了一个新视图,该表单继承自我要修改的视图(base.view_partner_form)。

为了使street2不可见,我以这种方式离开了我的继承形式:

<?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>

但是这样,无论条件如何,我都会让这个领域变得不可见。只有在is_companyTrue时才需要隐藏它。所以我尝试了几种方法,但我无法管理它。下一行是我失败的尝试之一:

<?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>

任何人都知道如何管理这个?我接近答案了吗?任何帮助将不胜感激。提前谢谢。

1 个答案:

答案 0 :(得分:2)

试试这个,

<?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>