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']后面加字段。

posted @ 2016-09-24 18:40  UniqueColor  阅读(374)  评论(0编辑  收藏  举报