Python 基于父字段Odoo 8的字段不可见

Python 基于父字段Odoo 8的字段不可见,python,filter,one-to-many,odoo-8,invisible,Python,Filter,One To Many,Odoo 8,Invisible,我需要基于父字段不可见one2many字段的列。 通过继承account.invoice模型,我添加了一个字段inv\u type。在科目发票行中,如果库存类型为“实用工具”,我需要设置不可见字段“数量” 我尝试了以下代码: xml: 请提出解决办法。。谢谢..非常复杂,建议您使用适用于odoo 9的属性: <record id="ams_invoice_form" model="ir.ui.view"> <field name="name">accoun

我需要基于父字段不可见one2many字段的列。 通过继承account.invoice模型,我添加了一个字段inv\u type。在科目发票行中,如果库存类型为“实用工具”,我需要设置不可见字段“数量”

我尝试了以下代码:

xml:


请提出解决办法。。谢谢..

非常复杂,建议您使用适用于odoo 9的属性:

<record id="ams_invoice_form" model="ir.ui.view">
        <field name="name">account.invoice.form</field>
        <field name="model">account.invoice</field>
        <field name="inherit_id" ref="account.invoice_form"></field>
        <field name="inherit_id" ref="ams.3e_invoice_form"></field>
        <field name="arch" type="xml">
            <xpath expr="//notebook/page/field/tree/field[@name='quantity']" position="replace">
                <field name="quantity" invisible="context.get('ok_invisible', False)"/>
                <field name="consumed_unit"/>
                <field name="fixed_charge"/>
            </xpath>

        </field>
    </record>

非常复杂,建议您使用适用于odoo 9的属性:

<record id="ams_invoice_form" model="ir.ui.view">
        <field name="name">account.invoice.form</field>
        <field name="model">account.invoice</field>
        <field name="inherit_id" ref="account.invoice_form"></field>
        <field name="inherit_id" ref="ams.3e_invoice_form"></field>
        <field name="arch" type="xml">
            <xpath expr="//notebook/page/field/tree/field[@name='quantity']" position="replace">
                <field name="quantity" invisible="context.get('ok_invisible', False)"/>
                <field name="consumed_unit"/>
                <field name="fixed_charge"/>
            </xpath>

        </field>
    </record>

在Odoo8.0中,我必须在其他人身上实现一点。它在视图中具有相同的逻辑,但我必须使用sale.order的fields\u view\u get方法,并且需要从其标识符加载订单:

class SaleOrder(models.Model):
    _inherit = 'sale.order'

    @api.model
    def fields_view_get(self, view_id=None, view_type=False, toolbar=False,
                        submenu=False):
        order = False
        params = self.env.context.get('params', False)
        if params:
            order_id = params.get('id', False)
            if order_id:
                order = self.browse(order_id)

        if order and not order.is_agreement:
            self = self.with_context(hide_agreement_cols=False)

        result = super(SaleOrder, self).fields_view_get(
            view_id=view_id, view_type=view_type,
            toolbar=toolbar, submenu=submenu
        )
        return result

在Odoo8.0中,我必须在其他人身上实现一点。它在视图中具有相同的逻辑,但我必须使用sale.order的fields\u view\u get方法,并且需要从其标识符加载订单:

class SaleOrder(models.Model):
    _inherit = 'sale.order'

    @api.model
    def fields_view_get(self, view_id=None, view_type=False, toolbar=False,
                        submenu=False):
        order = False
        params = self.env.context.get('params', False)
        if params:
            order_id = params.get('id', False)
            if order_id:
                order = self.browse(order_id)

        if order and not order.is_agreement:
            self = self.with_context(hide_agreement_cols=False)

        result = super(SaleOrder, self).fields_view_get(
            view_id=view_id, view_type=view_type,
            toolbar=toolbar, submenu=submenu
        )
        return result
class SaleOrder(models.Model):
    _inherit = 'sale.order'

    @api.model
    def fields_view_get(self, view_id=None, view_type=False, toolbar=False,
                        submenu=False):
        order = False
        params = self.env.context.get('params', False)
        if params:
            order_id = params.get('id', False)
            if order_id:
                order = self.browse(order_id)

        if order and not order.is_agreement:
            self = self.with_context(hide_agreement_cols=False)

        result = super(SaleOrder, self).fields_view_get(
            view_id=view_id, view_type=view_type,
            toolbar=toolbar, submenu=submenu
        )
        return result