Onchange Method
When a field value changes from the front end and a function triggers ,which performs certain operations.Let’s depict with an example.
Consider a model which contains patients op details
class OpDetails(models.Model):
_name = "op.details"
_description = "Op Details"
partner_id = fields.Many2one('res.partner', string="Patient Name",help)
phone = fields.Integer(string="Phone", help="Patients Phone number")
email = fields.Char(string="Email Address", help="Patient's email")
Now ,Let's write a function while changing the partner_id field.While changing the partner_id we want to write the phone and email of the op with partner_id’s phone and email.
@api.onchange('partner_id')
def _onchange_partner_id(self):
""" Update phone and email while changing the partner_id"""
self.write({
'phone': self.partner_id.phone,
'email': self.partner_id.email
})
Here we are using a method decorator onchange( ) in which we are passing partner_id fields as its argument.As result it triggers this function whenever the fields partner_id changes though front end and performs the operations.Moreover we can pass multiple fields as the argument for the onchange( ) decorator and which triggers the function while change in any of the fields.