如果我的模型继承自res.partner,它的数据将在使用res.partner的模块中可见,例如CRM

时间:2017-03-21 19:27:08

标签: openerp

我有一个自定义模型mymodule.contacts,它继承自res.partner,因为我新增了一些额外的字段。我希望我添加到mymodule.contacts的记录在其他Odoo模块中可见, sans 我的额外字段..即我的模型中继承自res.partner的字段是唯一可能在其他Odoo模型中可见的,这很好。例如,Invoice模块使用res.partner模型。我的模型继承自res.partner。但是,由于Odoo应该将我的模型创建为Postgres中的新表,我不认为我的自定义模型中的任何联系人数据都会对Invoices模块可见,尽管从res.partner继承,因为实际数据在不同的Postgres中表。我的假设是否正确?

2 个答案:

答案 0 :(得分:1)

这实际上取决于你正在做的继承类型。如果使用

进行简单继承

$res[1]

要向_inherit = res.partner模型添加新字段,然后是,新字段可用于任何包含res.partner

链接的模型

另一方面,如果使用

进行多态继承

res.partner

或者您在继承时指定_inherits = res.partner,将在postgres中创建一个新表,其中包含旧模型的属性,并且您的新字段将无法用于继承{{1}的其他模型}。

我认为您真正想要的是_name,它会为您创建一个新表。 res.partner的默认数据仍会存储在其表中,但新数据将存储在您指定的新表中,因此其他模型永远不会知道您添加的新字段。< / p>

这里有关于Odoo中继承类型的很好的可视化。

https://www.odoo.com/forum/how-to/developers-13/whats-the-difference-between-inherit-and-inherits-52205

答案 1 :(得分:0)

当您继承模型时,您只需获得其特征,以便可以在其上构建。除非已连接,否则继承的模型或任何其他模型将无法对模型具有任何可见性。您添加到扩展模型的额外字段对任何其他模型都不可见,除非您将它们与many2one,one2many或many2many字段连接。