One2Many 字段的 Odoo 10 过滤器不起作用

问题描述

我有一个关于在搜索视图中使用 One2Many 字段进行过滤的可能性的问题。 假设我在这里有这个字段:

class AccountInvoice(models.Model):
    _inherit= 'account.invoice'

    custom_field_ids = fields.One2Many(
        comodel_name='account.payment.order',compute='some_method',readonly=True,) 

现在我想在搜索视图中插入一个过滤器

        <record id="view_payment_order_filter" model="ir.ui.view">
            <field name="name">view.payment.order.filter</field>
            <field name="model">account.invoice</field>
            <field name="inherit_id" ref="account.view_account_invoice_filter"/>
            <field name="arch" type="xml">

                <xpath expr="//filter[@name='refunds']" position="after">
                    <filter string="In Payment Orders" domain="[('payment_order_ids','!=',False)]" />
                </xpath>

            </field>
        </record>

当我更新模块时,它不会给我任何错误。但是过滤器不起作用。我对此做了一些研究,但没有真正的“最佳实践”解决方案。为该字段启用过滤器的好方法是什么。我基本上想显示 One2Many 字段不为空的所有发票。

解决方法

您无法使用未存储的字段进行过滤。一种解决方法是根据您的条件存储一个 bool 字段。比将此字段添加到搜索视图作为过滤器。