Extending models using classic in-place extension
We can think of the classic model inheritance as an in-place extension. When a Python class with the _inherit
attribute is declared, it gets a reference to the corresponding model definition, to then add extensions to it. The model definition is stored in the Odoo model registry and is available for us to add further modifications to it.
Now, let's learn how to use this for frequent extension use cases: modifying the attributes of an existing field and extending Python methods to add or modify business logic.
Incrementally modifying existing fields
When we're extending a model, existing fields can be modified incrementally. This means that we only need to define the field attributes to change or add.
We will make two changes to the book fields that were created in the library_app
module:
- On the
isbn
field, add a help tooltip explaining that we support both 10- and 13-digit ISBNs, with the latter being implemented...