我希望与i
建立superclass
one2many
关系。因此,继承dummy.one
的每个subclass
都与superclass
具有one2many
关系。问题是声明dummy.one
关系强制我指定将one2many
链接到dummy.one
的外键。因此,对于我创建的每个superclass
,我需要在many2one
中创建dummy.one
关系(外键)。
唯一有效的技巧是我创建subclass
关系而不是many2many
。
以下是一个例子:
one2many
Many2Many:
'dummies' : fields.one2many('dummy.one','foreign_key','Dummies'),
是否有更好的方法可以获得与'dummies' : fields.many2many('dummy.one',string='Dummies'),
相同的效果,而无需在many2many
中为每many2one
声明一个dummy.one
字段?
答案 0 :(得分:2)
您可能更喜欢使用Odoo的ORM继承,而不是使用Python继承,而继承是委托继承。请参阅以下示例:
class book(models.Model):
_name = 'books.book'
name = fields.Char()
author = fields.Many2one('books.author')
class author(models.Model):
_name = 'books.author'
name = fields.Char()
books = fields.One2many('books.book', 'author')
class better_author(models.Model):
_name = 'books.author'
_inherit = 'books.author'
curriculum = fields.Text()
答案 1 :(得分:1)
尝试在dummy.one
中为超类创建一个many2one关系(外键),而不是为每个子类创建。
答案 2 :(得分:0)
class citys(models.Model):
_inherit='purchase.order'
city_partner=fields.One2many('city.line','city_id',string='City')
#relation between type of base class
class city(models.Model):
_name='city.line'
city_id=fields.Many2one('purchase.order')