0

我想做一个与说superclassone2many关系的dummy.one。这样每个subclass继承superclass意志的人都one2manydummy.one. 问题是声明one2many关系迫使我指定链接dummy.onesuperclass. 因此,我需要为我创建的每一个创建many2one关系(外键)。dummy.onesubclass

唯一有效的技巧是我创建了一个many2many关系而不是one2many.

这是一个例子:

'dummies'      : fields.one2many('dummy.one','foreign_key','Dummies'),

多对多:

'dummies'      : fields.many2many('dummy.one',string='Dummies'),

有没有更好的方法来实现与many2many不必为 each 声明一个many2one字段相同dummy.one的效果subclass

4

3 回答 3

2

除了使用 Python 继承,您可能更喜欢使用 Odoo 的 ORM 继承,即委托继承。请看下面的例子:

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()
于 2015-09-18T06:01:57.993 回答
1

尝试dummy.one为超类而不是每个子类创建一个多对一关系(外键)。

于 2015-04-30T14:56:23.550 回答
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')
于 2018-10-30T06:51:12.590 回答