是否有可能在没有指定目标模型的情况下建立一个单一的关系" s"外键字段"?

时间:2015-04-30 07:55:10

标签: python openerp odoo odoo-8

我希望与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字段?

3 个答案:

答案 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')