在Odoo中创建一个继承两个模型的模型
Create a model that inherits two model in Odoo
有没有办法创建一个继承两个 model
的 model
?
#electric class
class Electric(models.Model):
_name = 'electric'
battery = fields.Integer()
#combustion class
class Combustion(models.Model):
_name = 'combustion'
fuel_tank = fields.Integer()
#inherit from electric and combustion
class Hybrid(models.Model):
_name = 'hybrid'
_inherit = 'combustion'
_inherit = 'electric'
此代码无效。有办法吗?
在 Odoo 中,多模型继承是通过以下方式执行的..
class Hybrid(models.Model):
_name = 'hybrid'
_inherit = ['combustion','electric']
在多模型继承的情况下,应该定义一个_name
属性。
原因是...
如果_name与被继承的值相同class会做一个基本的继承。
如果您忘记添加 _inherit,您将重新定义模型 如果您的 class _inherit 一个模型并且您设置了一个不同的 _name,它将在新数据库 table 中创建一个新模型。
如果你的 class 继承了很多模型,你必须设置 _name 如果你以这种方式覆盖现有模型,你可能会遇到一些麻烦,应该避免。最好使用它来创建继承自抽象模型的新 classes。
有没有办法创建一个继承两个 model
的 model
?
#electric class
class Electric(models.Model):
_name = 'electric'
battery = fields.Integer()
#combustion class
class Combustion(models.Model):
_name = 'combustion'
fuel_tank = fields.Integer()
#inherit from electric and combustion
class Hybrid(models.Model):
_name = 'hybrid'
_inherit = 'combustion'
_inherit = 'electric'
此代码无效。有办法吗?
在 Odoo 中,多模型继承是通过以下方式执行的..
class Hybrid(models.Model):
_name = 'hybrid'
_inherit = ['combustion','electric']
在多模型继承的情况下,应该定义一个_name
属性。
原因是...
如果_name与被继承的值相同class会做一个基本的继承。 如果您忘记添加 _inherit,您将重新定义模型 如果您的 class _inherit 一个模型并且您设置了一个不同的 _name,它将在新数据库 table 中创建一个新模型。 如果你的 class 继承了很多模型,你必须设置 _name 如果你以这种方式覆盖现有模型,你可能会遇到一些麻烦,应该避免。最好使用它来创建继承自抽象模型的新 classes。