Adding computed fields to a Model
Sometimes, we need to have a field that has a value calculated or derived from other fields in the same record or in related records. A typical example is the total amount that is calculated by multiplying a unit price with a quantity. In Odoo models, this can be achieved using computed fields.
To show how computed fields work, we will add one to the Library Books model to calculate the days since the book's release date.
It is also possible to make computed fields editable. We will also implement this in our example.
Getting ready
We will reuse the my_module
addon module from Chapter 3, Creating Odoo Modules.
How to do it…
We will edit the models/library_book.py
code file to add a new field and the methods supporting its logic:
Start by adding the new field to the
Library Books
model:class LibraryBook(models.Model): # ... age_days = fields.Float( string='Days Since Release', compute='_compute_age', inverse='_inverse_age', ...