Odoo阶级差异

时间:2015-04-27 16:35:20

标签: openerp odoo

创建类时有时使用osv.osv,我们也使用models.Model 这两者之间的基本区别是什么? 有没有比另一个更有优势?

2 个答案:

答案 0 :(得分:9)

在版本7之前,

osv是一个类和一个OpenERP描述符类,所有类(模型)必须为OpenERP模块部署继承它。

在OpenERP服务器的OSV模块里面的

osv类,其中包含所有OpenERP属性,你可以看到_column,_defaults和其他很多东西,比如nameetc,所以我们必须在我们的openerp模型中继承(类)< / p>

在版本7中,

ORM是对象关系映射的缩写,是OpenERP的核心部分。

在OpenERP中,数据模型通过Python类和对象进行描述和操作。在Python和底层关系数据库(PostgreSQL)之间弥合差距 - 尽可能透明地开发 - 这是ORM的工作,它将为我们的对象提供所需的持久性。

不推荐使用

osv.osvorm.Model,它仍可用于向后兼容。您应该使用models.Model代替。

在版本8+中,

模型转换是

osv.osv ---&gt; orm.Model ---&gt; models.Model

osv.TransientModel ---&gt; orm.TransientModel ---&gt; models.TransientModel

答案 1 :(得分:5)

以前的API中使用了osv.osv。 它已被弃用。它仍然有效,但应该避免。

应使用新的API models.Model