When using the @api.onchange decorator, I was able to set a domain on a Many2one field based on the value of another field when it is changed. However, when I open an existing record and select the Many2one field, the domain does not get applied and all records are displayed. This means that the domain set using @api.onchange is not being applied when the record is opened and the field is selected
class AccountMoveInherited(models.Model):
_inherit = 'account.move'
project_name = fields.Many2one('res.partner.project',string="Project")
po_number = fields.Many2one('res.partner.po',string="PO")
customer_reference = fields.Char(string="Customer Reference")
contact_person = fields.Many2one('res.partner',string="Contact Person")
@api.onchange("partner_id")
def set_domain_for_project_name(self):
if self.partner_id:
domain = [('contact_id', '=', self.partner_id.id),('closed_boolean', '=', False)]
result = { 'domain': {'project_name': domain}}
return result