Computed fields
Fields can have their values automatically calculated by a function, instead of simply reading a database stored value. A computed field is declared just like a regular field but has the additional compute
argument to define the function that's used for the computation.
Computed fields involve writing some business logic. So, to take full advantage of this feature, we should be comfortable with the topics that will be explained in Chapter 8, Business Logic – Supporting Business Processes. Computed fields will still be explained here, but we will keep the business logic as simple as possible.
As an example, we will add a computed field to the Books
model, displaying the publisher's country. This will allow the country to be displayed in the form view.
The code that's needed to find the value is simple: if book
represents a book record, we can use object dot notation to get the publisher's country using book.publisher_id.country_id
...