Odoo模块开发教程3-模块继承之修改视图和数据第四讲

使用代理继承内嵌模型

使用代理继承无需复制数据即可在数据库中复用数据结构,这通过将一个模型嵌入另一个来实现。 UML 中这种称作组合(composition)关系:父类无需子类即可存在,而子类必须要有父类才能存在。
比如,对于内核 User 模型,每条记录包含一条 Partner 记录,因此包含 Partner 中的所有字段以及 User 自身的一些字段。
在图书项目中,我们要添加一个图书会员模型。会员有会员卡并通过会员卡借阅读书。我们要记录卡号,还要存储 email 和地址这类个人信息。 Partner 模型已包含联系和地址信息,所以最好是进行复用,而不去创建重复的数据结构。为会员模型创建 library_member/models/library_member.py 文件并加入如下代码:
from odoo import fields, models
class Member(models.Model):
_name = 'library.member'
_description = 'Library Member'
card_number = fields.Char()
partner_id = fields.Many2one(
'res.partner',
delegate=True,
ondelete='cascade',
required=True)
使用代理继承, library.member 中嵌入了继承模型 res.partner,因此在创建会员记录时,一个关联的 Partner 会自动被创建并通过 partner_id 字段引用。
“ 注意: Odoo 8 的修改在新的 API 中引入了 delegate=True 字段属性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值