Summary
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. With this, our projects will be able to reuse and extend third-party add-on modules in a clean and modular way.
At the model layer, we use the _inherit
model attribute to get a reference to an existing model and then make in-place modifications to it. The field objects inside the model also support incremental definitions so that we can redeclare an existing field, providing only the attributes to change.
Additional model inheritance mechanisms allow you to reuse data structures and business logic. Delegation inheritance, which is activated with the delegate=True
attribute on a many-to-one relationship field (or the old-style inherits
model attribute), makes all the fields from the related model available and reuses its data structure. Prototype inheritance, which uses _inherit...