Odoo模塊開發教程1-模塊繼承第一講

Odoo 的一個強大功能是無需直接修改底層對象就可以添加功能。這是通過其繼承機制來實現的,採取在已有對象之上修改層來完成。這種修改可以在不同層上進行-模型層、視圖層和業務邏輯層。我們創建新的模塊來做出所需修改而無需在原有模塊中直接修改。
上一篇文章中我們從零開始創建了一個新應用,本文中我們學習如何通過繼承已有的核心應用或第三方模塊來創建新的模塊。實現以上本文將主要涵蓋:
⚫ 原模型擴展,爲已有模型添加功能
⚫ 修改數據記錄來繼承視圖,添加功能或修改數據來修改其它模塊創建的數據記錄
⚫ 其它模型繼承機制,如代理繼承和 mixin 類
⚫ 繼承 Python 方法來爲應用業務邏輯添加功能
⚫ 繼承 Web 控制器和模板來爲網頁添加功能

開發準備

本文要求可通過命令行來啓動 Odoo 服務。代碼將在第三章創建第一個 Odoo 應用的基礎上進行修改。通過該文的學習現在我們已經有了 library_app 模塊。本系列文章代碼請參見 GitHub倉庫。

學習項目-繼承圖書館應用

在創建第一個 Odoo 應用中我們創建了一個圖書應用的初始模塊,可供查看圖書目錄。
現在我們要創建一個 library_member 模塊,來對圖書應用進行擴展以讓圖書會員可以借書。它繼承 Book 模型,並添加一個圖書是否可借的標記。該信息將在圖書表單和圖書目錄頁顯示。
應添加圖書會員主數據模型 Member,類似 Partner 來存儲個人數據,如姓名、地址和email,還有一些特殊字段, 如圖書會員卡號。最有效的方案是代理繼承,自動創建圖書會員記錄幷包含關聯 Partner 記錄。該方案使得所有的 Partner 字段在 Member 中可用,沒有任何數據結構上的重複。
我們還要在借書表單中爲會員提供消息和社交功能,包括計劃活動組件來實現更好地協作。我們還要添加會員從圖書館中借書的功能,但暫不涉及。以下是當前所要修改內容的總結:
⚫ 圖書
◼ 添加一個 Is Available? 字段。現在通過手動管理,以後會自動化
◼ 擴展 ISBN 驗證邏輯來同時支持 10 位數的 ISBN
◼ 擴展圖書目錄頁來分辨不可借閱圖書並允許用戶過濾出可借圖書
⚫ 會員
◼ 添加一個新模型來存儲姓名、卡號和 Email、地址一類的聯繫信息
◼ 添加社交討論和計劃活動功能
首先在 library_app 同級目錄創建一個 library_member 目錄來作爲擴展模塊,並在其中添加兩個文件,一個__init__.py 空文件和一個包含如下內容的__manifest__.py 文件:
{
'name': 'Library Members',
'description': 'Manage people who will be able to borrow books.',
'author': 'www.oscg.cn',
'depends': ['library_app'],
'application': False,
}

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

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