Odoo安裝教程12-創建新的插件模塊之設置視圖層第一講

視圖層

視圖層爲用戶界面的描述,視圖用 XML 定義,由網頁客戶端框架生成數據感知的 HTML 視圖。可用菜單項開啓渲染視圖的操作。比如, Users 菜單項處理一個同樣名爲 Users 的操作,然後渲染一系列視圖。有多種可用視圖類型,如 list(因歷史原因也稱爲 tree)列表視圖和 form 表單視圖,以及包含過濾項的右上角搜索框由 search 搜索視圖定義。
Odoo 開發指南寫到定義用戶界面的 XML 文件應放在 views/子目錄中。接下我們來創建圖書應用的用戶界面。下面我們會逐步改進並更新模塊來使更改生效。可以使用–dev=all 參數來在開發時頻繁的升級。使用該參數,視圖定義會在 XML 文件中直接讀取,無需升級模塊即可在Odoo 中即刻生效。
“ 小貼士: 如果因 XML 錯誤升級失敗,不必驚慌!仔細閱讀輸出日誌的錯誤信息,就可以找到問題所在。如果覺得麻煩,註釋掉最近編輯的 XML 版塊或刪除__manifest__.py 中 該 XML 文件,重新更新,服務應該就可正確啓動了。 ”

添加菜單項

現在有了存儲數據的模型,需要添加到用戶界面中。首先要做的就是添加相應菜單項。編輯views/library_menu.xml 文件,在 XML 元素中定義菜單項以及執行的操作:

<!-- Action to open the Book list -->
<act_window id="action_library_book"
name="Library Books"
res_model="library.book"
view_mode="tree,form"
/>
<!-- Menu item to open the Book list -->
<menuitem id="menu_library_book"
name="Books"
parent="menu_library"
action="action_library_book"
/>

用戶界面,包括菜單項和操作,存儲在數據表中。在安裝或升級插件模塊時, XML 文件會將這
些定義載入數據庫中的數據文件。以上代碼是一個 Odoo 數據文件,表示兩條添加到 Odoo 的記錄:
⚫ 元素定義客戶端窗口操作,它按順序通過啓用列表和表單視圖打開
library.book 模型
⚫ 定義一個調用前面定義的 action_library_book 操作的頂級菜單項
現在再次升級模塊來讓修改生效。然後刷新瀏覽器頁面,就可以看到 Library 頂級菜單,幷包含
一個子菜單項。點擊該菜單會顯示一個基本列表視圖,記錄可通過一個自動生成的表單視圖進行編
輯。點擊 Create 按鈕即可查看,雖然我們還沒有定義用戶界面視圖,自動生成的列表視圖和表單視圖也可以使用,允許我們馬上
編輯數據。

創建表單視圖

所有的視圖都存儲在數據庫 ir.ui.view 模型中。爲模型添加視圖,我們在 XML 文件中聲明元素來描述視圖,在模塊安裝時 XML 文件會被載入數據庫。
添加 views/book_view.xml 文件來定義表單視圖:

<?xml version="1.0"?>
<odoo>
<record id="view_form_book" model="ir.ui.view">
<field name="name">Book Form</field>
<field name="model">library.book</field>
<field name="arch" type="xml">
<form string="Book">
<group>
<field name="name" />
<field name="author_ids" widget="many2many_tags" />
<field name="publisher_id" />
<field name="date_published" />
<field name="isbn" />
<field name="active" />
<field name="image" widget="image" />
</group>

</form>
</field>
</record>
</odoo>

這個 ir.ui.view 記錄有三個字段值: name, model 和 arch。另一個重要元素是記錄 id,它定義
了一個可在其它記錄中引用的 XML ID 標識符。這是 library.book 模型的視圖,名爲 BookForm。這個名稱僅用於提供信息,無需唯一,但應易於分辨所引用的記錄。其實可以完全省略name,這種情況下會自動按模型名和視圖類型來生成。
最重要的字段是 arch,它包含了視圖的定義,在 XML 代碼中我們做了高亮顯示(博客主題問題無法顯示)。

標籤定義了視圖類型幷包含視圖結構。
此處

中包含了要在表單中顯示的字段。這些字段會自動使用默認的組件,如 date 字段使用日期選擇組件。有時我們要使用不同的組件,如以上代碼中的 author_ids 使用了顯示標籤列表的組件, image 字段使用處理圖片的相應組件。有關視圖元素的詳細說明請見第十章後臺視圖。
不要忘記在聲明文件的 data 中加入新建文件,否則我們的模塊將無法識別到並加載該文件:

'data': [
'security/library_security.xml',
'security/ir.model.access.csv',
'views/library_menu.xml',
'views/book_view.xml',
],

 

要使修改載入 Odoo 數據庫就需要更新模塊。需要重新加載頁面來查看修改效果,可以再次點
擊菜單項或刷新網頁(大多數瀏覽器中快捷鍵爲 F5)。

更多教程:https://www.erpdaxue.cn/odoo/odoo-teach/

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章