使用 mixin 类继承模型
原型继承主要用于支持 mixin 类。 mixin 是基于 models.Abstract 的抽象的模型(而不是
models.Model),它在数据库中没有实际的体现,而是提供功能供其它模型复用(混合 mixed in)。 Odoo 插件提供多种 mixin,最常的两种由 Discuss 应用(mail 模块)提供:
⚫ mail.thread 提供在许多文档表单下方或右侧的消息面板功能,以及消息和通知相关逻辑。
这在我们自己的模型中将经常会添加,下面就来一起学习下。
⚫ mail.activity.mixin 模型提供待办任务计划。
“ 注意: Odoo 11 的修改
mail 模块现在通过 mail.activity.mixin 抽象模型提供 Activities 任务管理功能。该功能在 Odoo
11 中才添加,此前的版本中没有。 ”
我们一起来为 Member 模型添加上述两种 mixin。社交消息功能由 mail 模块的 mail.thread
模型提供,要将其加入自定义模型,应进行如下操作:
⚫ 通过 mixin 模型 mail 为插件模块添加依赖
⚫ 让类继承 mail.thread 和 mail.activity.mixin 两个 mixin 类
⚫ 将 message_follower_ids, message_ids 和 activity_id 这些 mixin 的数据字段添加到表
单视图
对于第一步扩展模型需要在__manifest__.py 文件中添加对 mail 的依赖。
'depends': ['library_app', 'mail'],
第二步中对 mixin 类的继承通过_inherit 属性完成,应编辑library_