首页 > 代码库 > OpenERP里面继承的用法

OpenERP里面继承的用法

最近开发遇到了这样的问题:需要往HR模块里面添加一些查询条件,这些查询条件是HR模型里已经写好的,直接修改HR肯定可以实现,但是HR模块一旦修改就会导致一系列的错误,OE开发中的一项基本原则就是不可修改基础模块,OE里面的基础模块包括hr,product,sale,stock,invoice等,都是不能直接修改的,但是又要修改之前的怎么办呢?

 

  这就要用到OE里面的继承机制,继承有两种写法,一种是在model里面继承,一种是在视图里面继承,模型里面继承的写法:

.........

直接继承hr.employee里面的字段,同时在columns里面添加新的字段,然后新的字段就会加到hr.employee表中,第二种方法在view里面继承,写法为:

 

 1 <record id="employee_extend_form_gender" model="ir.ui.view"> 2             <field name="name">hr.employee.extend.form.gender</field> 3             <field name="model">hr.employee</field> 4             <field name="inherit_id" ref="hr.view_employee_form"/> 5             <field name="arch" type="xml"> 6               <xpath expr="//field[@name=‘gender‘]" position="replace"> 7                     <field name="gender" select="1"/> 8                 </xpath> 9             </field>10         </record>

 

model表示继承的模型,inherit_id表示继承的性质,ref表示从哪个地方引入的view,arch里面接的是要修改的内容,position有四个值,用到的有replace和after,replace表示替换原来的,after是在//field[@name=‘gender‘]后面加字段。

OpenERP里面继承的用法