OpenERP的開發中,有如下一些重要概念

 對象或模型(Object or Model):是一個Python的Class,也對應到數據庫的一張數據表,負責存取數據記錄(Record),有Search、Read、Write等方法。OpenERP在模塊加載時,初始化模塊中的所有對象,放入對象池。因此,數據庫操作時,通常是先從對象池中取得對象,再調用對象的方法。下面分析一段典型的記錄查找和讀取代碼。 def _get_admin_id(self, cr): if self.__admin_ids.get(cr.dbname) is None: ir_model_data_obj = self.pool.get('ir.model.data') mdid = ir_model_data_obj._get_id(cr, 1, 'base', 'user_root') self.__admin_ids[cr.dbname] = ir_model_data_obj.read(cr, 1, [mdid], ['res_id'])[0]['res_id'] return self.__admin_ids[cr.dbname]
這段代碼來自文件server\addons\base\res\ res_user.py,它先從對象池取得對象'ir.model.data',該對象負責存取數據表ir_model_data。而後調用該對象的方法_get_id取得admin用戶的user_id,再讀入admin對應的user記錄的id。

 視圖(View):負責顯示數據,最常見的視圖是列表視圖和表單視圖。此外,還有看板、日曆、甘特圖、圖形、流程圖等幾種視圖,不同的視圖以不同的方式展示數據。本章主要介紹列表和表單,另外幾種視圖以後介紹。

 菜單(Menu):這個很直觀,不用介紹了。
 動作(Action):用戶操作系統時(如點擊菜單、點擊畫面右邊的工具條上的按鈕等),系統的響應動作。一個Action包含一個對象,包含若干個視圖,通常每個Action都包含列表和表單兩個視圖。當Action被觸發時,相應的視圖被調出,展示相應的對象的數據。Action有多種類型,最常見的是Act_Window(窗口類型),窗口類型跳出一個窗口以顯示數據。此外還有Report(報表)、Wizard(嚮導)等類型。本章主要介紹窗口類型。

上述概念間的關聯關係,參見如下操作序列圖:
例如,當打開一個財務憑證時(對象account.invoice),客戶端發生的動作鏈是:
1) 激發一個Action,Action要求打開account.invoice對象。Action中包含了對象、視圖、域條件(Domain, 如只顯示未支付的憑證)等數據。
2) 客戶端詢問服務端(通過XML-RPC協議)憑證對象定義了哪些視圖,以及應顯示什麼數據。
3) 客戶端呈現視圖,展示數據.

發佈了21 篇原創文章 · 獲贊 1 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章