Skip to Content
Menu
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
To pytanie dostało ostrzeżenie
2 Odpowiedzi
32277 Widoki

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.

 

Awatar
Odrzuć
Autor Najlepsza odpowiedź

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.

Awatar
Odrzuć
Najlepsza odpowiedź

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

Awatar
Odrzuć
Powiązane posty Odpowiedzi Widoki Czynność
0
mar 15
5180
1
lut 24
11959
2
lip 15
15721
1
mar 15
5521
1
mar 15
5603