扩展已有视图是我们非常需要的功能,因为现代的软件工业都是一层一层积累而来,而不是从头开始做。所以这一篇我们来讲如何继承和扩展已有模块。
我们挑选扩展销售订单的表单,所以我们先要安装销售模块:
安装完毕后,创建一张销售订单,创建订单的过程很简单,这里只贴一张图示意一下:
然后我们要在Customer下面加入病人的名字,所以我们要先找到销售订单Sales Order的数据对象和表单名称及Customer这个字段在Sales Order数据对象里面叫什么,Odoo系统在这方面给了我们很好的借鉴,我们在Web界面,只要进入开发者模式就可以看了,非常方便。
记住这个小甲虫:
进入Edit View: Form,记下来Model和External ID项
把鼠标移动到Customer字段上,Odoo就会提示该字段的设计内容,因为我们要在Customer下面添加病人名字,所以需要了解这个字段名称,在图示中是Field: partner_id。好了,万事俱备,只欠动手了。
打开__manifest__.py,我们要添加一下依赖关系,因为我们要从sales模块继承
'depends' : ['base','mail','sale'],
打开patient.py,我们要添加继承内容,代码直接粘贴在class HospitalPatient(models.Model)那行上面:
class SaleOrderInherit(models.Model):
_inherit = 'sale.order'
patient_name = fields.Char(string='Patient Name')
在patient_menu.xml添加销售订单修改字段内容
<record id="sale_order_inherit" model="ir.ui.view">
<field name="name">sale.order.inherit</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form"/>
<field name="arch" type="xml">
<field name="partner_id" position="after">
<field name="patient_name"/>
</field>
</field>
</record>
然后升级om_hospital模块,再打开销售订单部分,就可以看见我们新加入的字段了: