Skip to Content
Меню
Вам необхідно зареєструватися, щоб взаємодіяти зі спільнотою.
Це запитання позначене
2 Відповіді
32384 Переглядів

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.

 

Аватар
Відмінити
Автор Найкраща відповідь

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.

Аватар
Відмінити
Найкраща відповідь

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

Аватар
Відмінити
Related Posts Відповіді Переглядів Дія
0
бер. 15
5237
1
лют. 24
12017
2
лип. 15
15775
1
бер. 15
5566
1
бер. 15
5690