如何使用many2many Odoo域名过滤

时间:2017-06-05 07:54:37

标签: python-2.7 openerp odoo-9

我有 supply.conditions purchase.request模型。在 purchase.request 中,我有很多关系字段:

supply_ids  = fields.Many2many(comodel_name='supply.conditions', relation='purchase_supply_rel', column1='purchase_requests_id', column2='supply_conditions_id',string='Supply Conditions')

supply.conditions 模型中,我需要添加域过滤器来检查supply.conditions id是否在purchase_supply_rel表中。我想更改SQL:

select * from supply_conditions a
inner join purchase_supply_rel b
on a.id = b.supply_conditions_id

到many2many关系域。

我打算像这样制作域名过滤器:

[('id', '=', purchase_supply_rel.supply_conditions_id)]

但我收到了一个错误:

ValueError: "name 'purchase_supply_rel' is not defined" while evaluating

有什么问题?我的supply.conditions模型中是否必须具有相同的many2many关系?

1 个答案:

答案 0 :(得分:0)

要过滤Many2many字段,您可以使用

<field name="m2m_field" domain="[('field', '=', True)]"/>

因此,使用域[('id', 'in', ids)]将像往常一样过滤相关对象