Odoo form視圖詳解


轉載請注明原文地址: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

    表示該字段是一個密碼,不明文展示。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM