标签:
最近开发遇到了这样的问题:需要往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‘]后面加字段。
标签:
原文地址:http://www.cnblogs.com/UniqueColor/p/5903824.html