ODOO Ninja

Quick tips for


Who are we?

Short Odoo tips and advices for programmers for both backend and frontend. Mainly written by Martin Fraňo. Slovak based programmer cooperating with Dutch company Bonebakker Computer Services specializing in Odoo development.


Trademarks

Odoo is trademark of Odoo S.A company.

Filter field depending on other field

Restrict Many2one field domain depending on other field. It is needed to filter it in XML instead of Python model together with onchange Python method.

owner = fields.Many2one('res.partner', string='Owner')
supplier = fields.Many2one('mulders.supplier', string="Supplier")

@api.onchange('owner')
def _onchange_owner(self):
    res = {'domain': {'supplier': []}}
    if self.owner:
        res['domain']['supplier'] = [('partner_id', '=', self.owner.id)]
    return res

View part:

<field name="owner"/>
<field name="supplier" context="{'default_partner_id': owner}" domain="[('partner_id','=', owner)]" />