加载合作伙伴,父母和所有孩子的发票

问题描述 投票:0回答:1

我选择了合作伙伴,我有字段invoice_ids。当我点击添加对象时,我希望只加载合作伙伴,父母及其所有child_ids发票的发票。我试图添加域名,如上所示,但我收到一个错误

Uncaught Error: AttributeError: object has no attribute 'parent_id'

我尝试了没有域,但有onchange但问题是,当我创建记录并选择合作伙伴onchnage开始工作但是没有partner_id但是当我选择合作伙伴它仍然没有合作伙伴因为它没有保存..所以需要一些帮助这里。

'invoice_ids': fields.many2many(
            'account.invoice', 'cash_receipt_invoce_rel',
            'cash_receipt_id', 'invoice_id', "Invoices", 
            domain="[('partner_id','in', partner_id.parent_id.child_ids)]",

def onchange_field_id(self, cr, uid, ids, name, context=None):
    cash_rep = self.browse(cr,uid, ids,context=context)
    relation_ids = [x.id for x in cash_rep.partner_id.child_ids]
    return {'domain': {'invoice_ids': [('partner_id', 'in', relation_ids)]}}

odoo odoo-10
1个回答
1
投票

要获得所选合作伙伴的发票,该合作伙伴的父母以及该合作伙伴的子女,您可以写如下。

'invoice_ids': fields.many2many(
            'account.invoice', 'cash_receipt_invoce_rel',
            'cash_receipt_id', 'invoice_id', "Invoices", 
           domain="['|','|',('partner_id.child_ids','in',[partner_id]),('partner_id','=', partner_id),('partner_id','child_of',partner_id)]",
© www.soinside.com 2019 - 2024. All rights reserved.