iT邦幫忙

2025 iThome 鐵人賽

DAY 11
0
Odoo

用 Odoo 打造數位轉型引擎:從基礎建置到跨領域應用系列 第 11

Day 11:Odoo Views(XML/QWeb)的定義與設計

  • 分享至 

  • xImage
  •  

在前幾篇我們已經熟悉了 Odoo 的 Model 與 ORM,今天要進一步學習如何透過 Views 將資料展示給使用者。Odoo 的前端採用 XML + QWeb 模板引擎,開發者可以靈活定義不同的視圖,讓資料不僅能被儲存,也能以合適的方式呈現。


1. Odoo 視圖的角色

Odoo 的 View 負責控制「資料怎麼被顯示與操作」。
常見的視圖類型有:

  • Tree (List):表格檢視,適合大批量資料。
  • Form:單筆資料詳細頁面,支援輸入與編輯。
  • Kanban:卡片式呈現,適合工作流與管線管理。
  • Calendar:日曆方式顯示時間相關資料。
  • Graph/Pivot:數據分析用。

這些視圖都以 XML 定義,並由 Odoo 的 QWeb 引擎渲染。


2. Tree 視圖範例

以下是最簡單的 List 視圖

<record id="view_library_book_tree" model="ir.ui.view">
  <field name="name">library.book.tree</field>
  <field name="model">library.book</field>
  <field name="arch" type="xml">
    <tree>
      <field name="name"/>
      <field name="author"/>
      <field name="published_date"/>
    </tree>
  </field>
</record>

這段程式碼會顯示一本書的清單,包含書名、作者與出版日期。


3. Form 視圖範例

Form 視圖通常用於單筆資料的檢視與編輯:

<record id="view_library_book_form" model="ir.ui.view">
  <field name="name">library.book.form</field>
  <field name="model">library.book</field>
  <field name="arch" type="xml">
    <form>
      <sheet>
        <group>
          <field name="name"/>
          <field name="author"/>
          <field name="published_date"/>
        </group>
      </sheet>
    </form>
  </field>
</record>

這樣一來,使用者點擊清單中的書籍,就能進入詳細頁面進行編輯。


4. Kanban 視圖範例

Kanban 視圖提供更直觀的視覺化介面,適合用於任務追蹤或銷售管線:

<record id="view_library_book_kanban" model="ir.ui.view">
  <field name="name">library.book.kanban</field>
  <field name="model">library.book</field>
  <field name="arch" type="xml">
    <kanban>
      <templates>
        <t t-name="kanban-box">
          <div class="oe_kanban_global_click">
            <strong><field name="name"/></strong>
            <div><field name="author"/></div>
          </div>
        </t>
      </templates>
    </kanban>
  </field>
</record>

5. Action 與 Menu

要讓這些視圖能被使用者存取,我們需要建立 Action 與 Menu

<record id="action_library_book" model="ir.actions.act_window">
  <field name="name">Books</field>
  <field name="res_model">library.book</field>
  <field name="view_mode">tree,form,kanban</field>
</record>

<menuitem id="menu_library_root" name="Library"/>
<menuitem id="menu_library_books" name="Books" parent="menu_library_root" action="action_library_book"/>

這樣一來,系統就會在主選單新增一個 Library → Books 的選單項目。


小結

Odoo 的 Views 提供了多種方式呈現資料:

  • Tree / Form:標準化管理
  • Kanban / Calendar:視覺化操作
  • Graph / Pivot:數據分析

透過 XML 與 QWeb,你可以完全掌控資料顯示方式,並結合 Action/Menu 將功能串接到使用者介面。在下一篇文章中,我將帶你認識 Odoo Controllers 與 REST API 實作,學習如何處理 HTTP 請求與外部系統整合。


上一篇
Day 10:Odoo ORM 基礎:Models 與 Fields
下一篇
Day 12:Odoo Controllers 與 REST API 實作
系列文
用 Odoo 打造數位轉型引擎:從基礎建置到跨領域應用12
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言