昨天跟大家講解了model如何繼承,今天要來講解繼承視圖的部分。
先上一個繼承視圖的簡單範例:
<record id="view_idx_repair_form_inherit" model="ir.ui.view">
<field name="name">idx.repair.form.inherit</field>
<field name="model">idx.repair</field>
<field name="inherit_id" ref="idx_repair.view_idx_repair_form"/>
<field name="arch" type="xml">
<!--第一種繼承方法-->
<xpath expr="//field[@name='repair_detail']" position="replace">
<field name="repair_date"/>
</xpath>
<!--第二種繼承方法-->
<field name="repair_detail" position="replace">
<field name="test_field"/>
</field>
</field>
</record>
下面介紹各項參數
<field name="groups_id" eval="[(6, 0, [ref('模組名稱.所屬權限id')])]"/>
下面來講解繼承時的第一種寫法。
繼承時要使用xpath語法來撰寫,xpath是用來對原本的視圖,進行自訂義的修改,一個record中,若相同視圖下有多個欄位畫面需要修改時,可使用多個<xpath>
,不需要重複定義。
<xpath expr="//field[@name='repair_detail']" position="attributes">
<attribute name="readonly">1</attribute>
</xpath>
第二種繼承方法則是直接以欄位名稱當定位點,再定義position即可直接繼承,position的參數設置與xpath的用法相同,就不再重複說明,但在繼承的使用上,普遍都會採用第一種的xpath。
今天講完了繼承視圖的方法,那麼關於odoo的繼承就先介紹到這邊。