如何写有条件的odoo域名?

时间:2016-11-15 21:02:21

标签: openerp odoo-8 odoo-view

如果a字段不是False,我想应用odoo域。

['|',('versions_ids', '=', version_id),(False, '=', version_id)]

我写的域名抛出此错误

  

TypeError:不可用类型:' list'

编辑:

对象扩展:

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

    version_id = fields.Many2one('product_cars_application.version',string='Version')

视图扩展

<record id="sale_cars_append" model="ir.ui.view">
            <field name="name">sale.order.form</field>
            <field name="model">sale.order</field>
            <field name="inherit_id" ref="sale.view_order_form"/>
            <field name="arch" type="xml">
                <xpath expr="." position="inside">
                    <script type='text/javascript' src='/product_cars_application/static/src/js/filter.js'></script>
                </xpath>

                <xpath expr="/form/sheet/notebook/page[1]/field[@name='order_line']/tree/field[@name='product_id']" position="before">
                    <!-- <button name="product_search" type="action" class="oe_highlight" icon="fa-car" /> -->
                    <field name="version_id"/>
                </xpath>
                <xpath expr="/form/sheet/notebook/page[1]/field[@name='order_line']/tree/field[@name='product_id']" position="attributes">
                    <attribute name = "domain">['|',('versions_ids', '=', version_id),(False, '=', version_id)]</attribute>
                </xpath>
            </field>
        </record>

2 个答案:

答案 0 :(得分:0)

请尝试以下操作。

<xpath expr="/form/sheet/notebook/page[1]/field[@name='order_line']/tree/field[@name='product_id']" position="attributes">
    <attribute name = "domain">['|',('version_ids', '=', version_id),('version_ids','=',False),'|',('version_id','=',False)]</attribute>
</xpath>

答案 1 :(得分:0)

这应该是这样的,

<xpath expr="/form/sheet/notebook/page[1]/field[@name='order_line']/tree/field[@name='product_id']" position="attributes">
    <attribute name = "domain">['|',('version_ids', '=', version_id),('version_ids','=',False)]</attribute>
</xpath>

域的另一种选择。

['|',('version_ids', '=', version_id),('version_ids','=',[(6,False,[])])]