当前位置:   article > 正文

odoo 继承_odoo继承

odoo继承

1、创建新表继承

class eBook(models.Model):
    _inherit = "book_store.book"
    _name = "book_store.ebook"

    etype = fields.Selection(selection=[('mobi', 'Mobi'), ('epub', 'Epub'), ('awz', 'Awz3')], string='电子书格式', default='epub', help='')
  • 1
  • 2
  • 3
  • 4
  • 5

2、保留原表继承

class eBook(models.Model):
    _inherit = "book_store.book"

    etype = fields.Selection(selection=[('mobi', 'Mobi'), ('epub', 'Epub'), (
        'awz', 'Awz3')], string='电子书格式', default='epub')
  • 1
  • 2
  • 3
  • 4
  • 5

3、多继承

Odoo也支持多继承,方法是把_inherit的值变成一个要继承的列表:继承的顺序从左到右

class sBook(models.Model):
    _inherit = ["book_store.book","book_store.ebook"]
    _name = "book_store.sbook"

    etype = fields.Selection(selection=[('mobi', 'Mobi'), ('epub', 'Epub'), (
        'awz', 'Awz3')], string='电子书格式', default='epub', help='')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

4、属性继承

Odoo还有另外的一种继承方式,不指明要继承的对象,而是指定本对象的某个Many2one的字段继承自一个其他对象,被继承的该对象的字段自动加载到本对象中,并且当其中任何一方的值发生变化时,都会同步到另一方中,这里把这种继承方式命名为属性继承。

    _inherits = {'book_store.ebook': 'ebook_id'}
    ebook_id = fields.Many2one(
        'book_store.ebook', string='ebook', ondelete='restrict', required=True, help='')
  • 1
  • 2
  • 3

_inherits属性是个字典,key为Many2one字段中外关联的对象名,value为Many2one的字段名。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/230902
推荐阅读
相关标签
  

闽ICP备14008679号