Skip to Content
Menu
This question has been flagged

In model inheritance, you can define values for _inherit (parent model name) and _inherits (dictionary with parent model and parent relation field).

What is the difference? Especially regarding the ORM.

Regards.

 

Avatar
Discard
Author Best Answer

The Technical Memento contains a great visualisation of the different inheritance methods:

https://www.odoo.com/files/memento/OpenERP_Technical_Memento_latest.pdf

Class inheritance, prototype inheritance and delegation.

Avatar
Discard
Best Answer

But the Technical Memento that @René shows in the above post doesn't match the explanation of the inheriting mechanism from the official Odoo documentation (https://www.odoo.com/documentation/8.0/reference/orm.html#inheritance-and-extension).

This documentation says that the classical inheritance is like the following example:

class Inheritance0(models.Model):
_name = 'inheritance.0'
name = fields.Char()

def call(self):http://i.imgur.com/lOgNgMI.png
return self.check("model 0")
def check(self, s):
return "This is {} record {}".format(s, self.name)

class Inheritance1(models.Model):
_name = 'inheritance.1'
_inherit = 'inheritance.0'

def call(self):
return self.check("model 1")

But this above example corresponds to the prototype inheritance in the technical memento from the above post.

http://i.imgur.com/lOgNgMI.png

Avatar
Discard
Related Posts Replies Views Activity
0
Mar 15
4563
1
Feb 24
11412
2
Jul 15
15098
1
Mar 15
5047
1
Mar 15
5084