我有一个自定义模型mymodule.contacts
,它继承自res.partner
,因为我新增了一些额外的字段。我希望我添加到mymodule.contacts
的记录在其他Odoo模块中可见, sans 我的额外字段..即我的模型中继承自res.partner
的字段是唯一可能在其他Odoo模型中可见的,这很好。例如,Invoice模块使用res.partner
模型。我的模型继承自res.partner。但是,由于Odoo应该将我的模型创建为Postgres中的新表,我不认为我的自定义模型中的任何联系人数据都会对Invoices模块可见,尽管从res.partner继承,因为实际数据在不同的Postgres中表。我的假设是否正确?
答案 0 :(得分:1)
这实际上取决于你正在做的继承类型。如果使用
进行简单继承 $res[1]
要向_inherit = res.partner
模型添加新字段,然后是,新字段可用于任何包含res.partner
另一方面,如果使用
进行多态继承 res.partner
或者您在继承时指定_inherits = res.partner
,将在postgres中创建一个新表,其中包含旧模型的属性,并且您的新字段将无法用于继承{{1}的其他模型}。
我认为您真正想要的是_name
,它会为您创建一个新表。 res.partner
的默认数据仍会存储在其表中,但新数据将存储在您指定的新表中,因此其他模型永远不会知道您添加的新字段。< / p>
这里有关于Odoo中继承类型的很好的可视化。
答案 1 :(得分:0)
当您继承模型时,您只需获得其特征,以便可以在其上构建。除非已连接,否则继承的模型或任何其他模型将无法对模型具有任何可见性。您添加到扩展模型的额外字段对任何其他模型都不可见,除非您将它们与many2one,one2many或many2many字段连接。