Diferencia entre inherit e inherits - La herencia por delegación en Odoo

Gustavo Orrillo
- 13/05/2022 - 1 min. de lectura

Revisando el código del módulo product de Odoo, en el archivo product.py (el cual define el comportamiento del modelo product.product) nos encontramos conque el modelo product.product hereda del modelo product.template por medio del keywork inherits, no inherit. Lo más extraño es que el modelo product.product usa los dos keywords para heredar en el modelo product.product

class ProductProduct(models.Model):
    _name = "product.product"
    _description = "Product"
    _inherits = {'product.template': 'product_tmpl_id'}
    _inherit = ['mail.thread', 'mail.activity.mixin']

Haciendo un grep en el código de Odoo me encontré que inherits se lo utiliza en varios lados, para mi sorpresa en el modelo account.payment donde el pago se hereda del asiento contable (account.move).

Que hace el keyword inherits? De acuerdo a la muy actualizada documentación de Odoo 8.0, inherits es una forma de definir la herencia por delegación en un modelo. La gran diferencia con inherit es, el nuevo modelo esta almacenado en una nueva tabla pero el modelo padre se encuentra "embebido" en el modelo hijo

 

Como verán es una funcionalidad que está implementado en varios lugares. Si observan en el modelo account.payment encontrarán que cuenta con todos los atributos y métodos del modelo account.move. Lo mismo con el modelo product.product que tambien implementa todos los atributos y métodos del modelo product.template.


Acerca de:

Gustavo Orrillo

Apasionado de la programación, implementa Odoo para distintos tipos de negocios desde el año 2010. En Moldeo Interactive es Socio fundador y Programador; además de escribir en el Blog sobre distintos temas relacionados a los desarrollos que realiza.

Cambiando el tipo de cambio en los pagos en Odoo

Bien... esto funciona en Odoo 15, no ya en Odoo 14. Ya verán porque. En Odoo 15 se permite el ingreso de los pagos; los cuales generan en forma auto...

Seguir leyendo
Procesando ingresos de mercadería

Por lo general, los ingresos de mercadería son creados automáticamente desde una orden de compra. Tambien se los puede crear manualmente. Solo tiene...

Seguir leyendo
Agregando campos para consultar stocks

Los stocks en Odoo estan representados en el modelo stock.quant. El cual tiene muchos campos por los cuales consultar, pero muchas veces eso no es s...

Seguir leyendo