创建类时有时使用osv.osv,我们也使用models.Model 这两者之间的基本区别是什么? 有没有比另一个更有优势?
答案 0 :(得分:9)
在版本7之前,
osv
是一个类和一个OpenERP描述符类,所有类(模型)必须为OpenERP模块部署继承它。
osv
类,其中包含所有OpenERP属性,你可以看到_column,_defaults和其他很多东西,比如nameetc,所以我们必须在我们的openerp模型中继承(类)< / p>
在版本7中,
ORM是对象关系映射的缩写,是OpenERP的核心部分。
在OpenERP中,数据模型通过Python类和对象进行描述和操作。在Python和底层关系数据库(PostgreSQL)之间弥合差距 - 尽可能透明地开发 - 这是ORM的工作,它将为我们的对象提供所需的持久性。
不推荐使用 osv.osv
和orm.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
。