Extensibility is a key feature of the Odoo framework. We can build add-on modules that change or add features to other existing add-ons at the several layers needed to implement features in Odoo.
At the Model layer, we use the _inherit
Model attribute to get a reference to an existing Model and then perform in-place modifications on it. The field objects inside the Model also support incremental definitions so that we can re-declare an existing field, providing only the attributes to change.
Additional Model inheritance mechanisms allow you to reuse data structures and business logic. The Delegation inheritance, activated with a delegate=True
attribute on a many-to-one relation field (or the old style inherits
Model attribute), makes all the fields from the related Model available, and reuses its data structure. The Prototype inheritance, using _inherit
with additional Models, allows you to copy features (data structure definition and methods) from other Models, and enable the use...