布尔字段不起作用 - Odoo v9社区

时间:2016-11-11 16:27:57

标签: python openerp odoo-9 qweb

我想在Odoo v9社区中隐藏/显示字段,具体取决于布尔字段

首先,我不知道它为什么不起作用,这是我的代码:

class account_invoice(models.Model):
    _inherit = "account.invoice"

    is_export = fields.Boolean(string="¿Es exportación?")
    field_1 = fields.Char ...
    field_2 = fields.Many2one ...

现在我的观点:

        <record model="ir.ui.view" id="embarque_form_view">
        <field name="name">account.invoice.embarque.form</field>
        <field name="model">account.invoice</field>
        <field name="inherit_id" ref="account.invoice_form" />
        <field name="arch" type="xml">
            <field name='partner_id' position="after">
                <field name="is_export" class="oe_edit_only" widget="radio"/>
                <field name="puerto_embarque" attrs="{'invisible': [('is_export', '!=', 'True')]}"/>
                <field name="puerto_desembarque" attrs="{'invisible': [('is_export', '!=', 'True')]}"/>
                <field name="moneda_export" attrs="{'invisible': [('is_export', '!=', 'True')]}"/>
                <field name="tara_unit" attrs="{'invisible': [('is_export', '!=', 'True')]}"/>
                <field name="weight_unit" attrs="{'invisible': [('is_export', '!=', 'True')]}"/>
                <field name="net_weight_unit" attrs="{'invisible': [('is_export', '!=', 'True')]}"/>
                <field name="transporte_tipo" attrs="{'invisible': [('is_export', '!=', 'True')]}"/>
                <field name="modal_idad" attrs="{'invisible': [('is_export', '!=', 'True')]}"/>
            </field>
        </field>
    </record>

这些字段实际上是隐藏的,但是当我尝试点击布尔字段时,为了激活它们,它不起作用,我的意思是它只是点击而不会变为真#&#39; True&# 39;或者其他任何东西,它仍然就像没有被点击一样。

我不知道这是否与我在其他所有领域中添加的内容有关,例如:attrs="{'invisible': [('is_export', '!=', 'True')]}"

我在这里做错了什么?

1 个答案:

答案 0 :(得分:2)

布尔字段无效,因为 widget ='radio' 字段属性可隐藏/显示其他字段。

声明 is_export 字段,默认值为 False

尝试使用以下代码:

is_export = fields.Boolean(string="¿Es exportación?", default=False)

使用

更新您的视图文件
<record model="ir.ui.view" id="embarque_form_view">
    <field name="name">account.invoice.embarque.form</field>
    <field name="model">account.invoice</field>
    <field name="inherit_id" ref="account.invoice_form" />
    <field name="arch" type="xml">
        <field name='partner_id' position="after">
            <field name="is_export"/>
            <field name="puerto_embarque" attrs="{'invisible': [('is_export', '=', False)]}"/>
            <field name="puerto_desembarque" attrs="{'invisible': [('is_export', '=', False)]}"/>
            <field name="moneda_export" attrs="{'invisible': [('is_export', '=', False)]}"/>
            <field name="tara_unit" attrs="{'invisible': [('is_export', '=', False)]}"/>
            <field name="weight_unit" attrs="{'invisible': [('is_export', '=', False)]}"/>
            <field name="net_weight_unit" attrs="{'invisible': [('is_export', '=', False)]}"/>
            <field name="transporte_tipo" attrs="{'invisible': [('is_export', '=', False)]}"/>
            <field name="modal_idad" attrs="{'invisible': [('is_export', '=', False)]}"/>
        </field>
    </field>
</record>

重新启动Odoo服务器并升级您的模块。