Adding dynamic view elements
View elements can dynamically change their appearance or behavior, depending on the field values. Field values can be dynamically set values of domain filters on other form fields through the onchange mechanism. These features will be discussed next.
Using onchange events
The onchange mechanism allows us to trigger server logic while the user is modifying data on an unsaved form. For example, when setting the product field, a unit price on the same form can be automatically set.
In older Odoo versions, the onchange events were defined at the view level, but since Odoo 8, they are declared directly on the model layer, without the need for any specific view markup. This can be done with methods that use the @api.onchange('field1', 'field2', ...)
decorator. It binds onchange logic to the declared fields. The onchange model methods were discussed in more detail in Chapter 8, Business Logic – Supporting Business Processes...