 <p>Before version 7,</p> <p><code>osv</code> is a class and an OpenERP descriptor class and all the class( model) must inherit it for OpenERP module deployment.</p> <p><code>osv</code> class inside in OSV module in OpenERP server , which content all the OpenERP properties like you can see _column, _defaults and other many things there such as nameetc so we must inherit in our openerp model (class)</p> <p>In version 7, </p> <p>The ORM, short for Object-Relational Mapping, is a central part of OpenERP.</p> <p>In OpenERP, the data model is described and manipulated through Python classes and objects. It is the ORM job to bridge the gap -- as transparently as possible for the developer -- between Python and the underlying relational database (PostgreSQL), which will provide the persistence we need for our objects.</p> <p><code>osv.osv</code> and <code>orm.Model</code> is deprecated and it still works for backward compatibility. You should use <code>models.Model</code> instead.</p> <p>In version 8+, </p> <p>The model transition was</p> <p><code>osv.osv</code> ---> <code>orm.Model</code> ---> <code>models.Model</code></p> <p><code>osv.TransientModel</code> ---> <code>orm.TransientModel</code> ---> <code>models.TransientModel</code></p>