Extending the to-do task model
New models are defined through Python classes. Extending them is also done through Python classes, but using an Odoo specific mechanism.
To extend an existing model we use a Python class with a _inherit
attribute. This identifies the model to be extended. The new class inherits all the features of the parent Odoo model, and we only need to declare the modifications that we wish to introduce.
In fact, Odoo models exist outside our particular module, in a central registry. This registry can also be referred to as the pool, and can be accessed from model methods using self.env[<model name>]
. For example, to reference the res.partner
model we would write self.env['res.partner']
.
To modify an Odoo model we get a reference to its registry class and then perform in place changes on it. This means that these modifications will also be available everywhere else where the model is used.
In the module loading sequence, during a server start, modifications...