轉載請注明原文地址:https://www.cnblogs.com/ygj0930/p/10826350.html
一:Header頭部
header區域一般用於展示文檔流轉的階段和生命周期,以及動作按鈕。
表單的生命周期通過狀態欄小控件呈現當前所處的狀態,這些通常是狀態選擇字段或者多對一的階段字段。
狀態是一個選擇列表,呈現的是過程中有幾個相當穩定的步驟階段,例如:新建、處理中、完成。
操作按鈕一般為表單按鈕,最重要的階段可以使用class=“oe_highlight”突出顯示。
二:Sheet區域
1:分組布局局 group標簽
1)用於定義欄目在表單中布局,默認情況下一個group定義兩個列,並且每個最直接的子元素占用一個列,field類型的元素默認顯示一個標簽。
2)子元素是橫向布局的。
3)可以通過設置string 屬性來定義組的標題;在group之外,我們可以使用html基本元素來制定標題,如:div,span,H1,和H2等,並且可以添加style屬性指定css樣式。
4)使用col和colspan屬性,我們可以更好的控制組元素布局。col屬性可以指定組中包含的列數,默認值是2,它也可以改為任何數字,雙數的效果更好,因為每一個字段加起來都要兩列。
5)組內元素,包括<field>元素,可以使用colspan屬性設置所占列數,默認都是2列。
6)newline標簽,只在group元素里才有用,代表開啟新的行。在組內一行還沒布滿時,強制換行布局。
7)可以使用<separator>元素添加組內分割線;可以通過string屬性來設置該區域的標題。
2:分頁顯示 notebook
定義一個tab塊,每一個tab通過一個page子元素定義,每個page可以有以下屬性:
- string (required) --tab標簽的名稱
- accesskey --html accesskey
- attrs --基於記錄值的動態屬性(可見、只讀),例如:attrs="{'invisible': [(表達式)]}"
筆記本元素可以包含多個標簽的部分,稱為頁面。可以實現按頁切換輸入、顯示。
<notebook> <page string="顯示文字" name="通常用於被視圖繼承時xpath定位"> 內容... </page> <page> ... </page> </notebook>
3:field
展示當前記錄的某個字段,有以下屬性:
1)name (必選)
字段名。
2)attrs
標簽屬性,只有兩個:invisible和readonly,可以根據表達式值來決定該兩個值,從而動態控制標簽的顯示/隱藏、只讀/可修改。
有兩種設置方式:
1:通過attrs屬性統一設置,可以使用表達式進行動態設置 attrs="{'invisible': [('state', '!=', 'draft'), ('state', '!=', 'disable')]}" 2:直接通過屬性名單獨、明確設置 <field name="" invisible="1" readonly="1"/>
3)widget
每個字段根據其數據類型有一個默認的展示方式,widget屬性可指定用一個別的方式來展示。
4)options
標簽行為,用於指定widget字段配置的json對象。這與該字段使用什么widget來顯示有關,odoo原生的字段類型都有對應的默認widget來負責顯示,widget中封裝了一些行為。可以查看具體widget定義的js文件,從 this.options.XX 字眼得到有哪些options。
我們也可以自定義widget、繼承widget來增加選項。
選項只能通過options屬性進行設置:
//通過options屬性統一設置 options="{'no_create': 1, 'no_open': 1}"
5)class
設置當前元素的css樣式,odoo內置了以下樣式類名,也可以使用boostrap相關樣式類名、自定義的css樣式文件中的類名。【注意:這些樣式不僅僅可以用於filed標簽,表單內任何元素都可以套用】
oe_inline:防止換行,防止它自動將之后的字段換行,使后面的內容自動在同一行顯示。 oe_left, oe_right:相當於css的float浮動,向左浮動布局、向右浮動布局。 oe_read_only, oe_edit_only:只在相應的模式下顯示,read_only的意思是只有在非編輯狀態下才顯示,edit_only是只有在編輯狀態下顯示。 oe_no_button:不為many2one字段顯示導航按鈕 oe_avatar:當該字段為圖片時,將它展示為頭像(90*90的正方形)
6)groups
指定用戶組可以看到該字段。【可以為某些字段做隱私、數據隔離】
7)on_change
在字段值改變時調用對應方法,從8.0開始改用模型中的 odoo.api.onchange()。
8)domain
在編輯時,當以 下拉選擇 的方式選取 關聯字段 時,過濾數據。
9)context
用於關聯字段,顯示數據時提供上下文環境。
10)readonly
該字段可在讀和編輯模式下展示,但是永遠是不能編輯的。
11)required
設置字段為必填,當該值沒有設置就保存時給出一個錯誤提示並阻止保存。
12)nolabel
不顯示字段的標簽,只有在該字段是group子元素時起效。一般搭配<label for='字段名' style="樣式">使用,為字段自定義顯示的標簽。
13)placeholder
字段值為空時展示的提示。
14)mode
對於one2many字段,用於展示其關聯的記錄的形式,有tree, form, kanban , graph,默認是tree。
15)help
當將鼠標放在字段或標簽時顯示的提示
16)filename
對於二進制的字段,相關字段給出文件名。
17)password
表示該字段是一個密碼,不明文展示。