最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

odoo16 寫好一個(gè)插件的5個(gè)步驟

2023-08-29 23:11 作者:OdooWizard  | 我要投稿

本章節(jié)我們將向大家介紹用odoo16寫好一個(gè)應(yīng)用插件的5個(gè)步驟。

我們還是以《odoo16 創(chuàng)建第一個(gè)應(yīng)用插件》中的學(xué)生管理為例,在前面出現(xiàn)過的代碼本章中就不再出現(xiàn)。

步驟一:需求分析

步驟說明:

1、需求分析的主要目的是確定項(xiàng)目或系統(tǒng)的目標(biāo)

2、所涉及到的功能在odoo原生代碼中是否已經(jīng)存在;這一步其實(shí)很難,因?yàn)樾枰纎doo到底有哪些功能;

3、如果存在,和我們的需求是否一致,有哪些場(chǎng)景是我們可以借鑒的。

舉例說明:

1、通過需求分析→詳細(xì)設(shè)計(jì)后,得到的E-R圖或流程圖就是我們要開發(fā)的功能。

2、學(xué)生管理在odoo中不存在,我們需要新增模型來實(shí)現(xiàn)。于是我們需要用4個(gè)基礎(chǔ)數(shù)據(jù)模型和2個(gè)業(yè)務(wù)模型來管理學(xué)生。

數(shù)據(jù)模型:年級(jí)、班級(jí)、學(xué)生、課程

業(yè)務(wù)模型:選課、選課明細(xì)

步驟二:模型實(shí)現(xiàn)

步驟說明:

根據(jù)規(guī)范,實(shí)現(xiàn)插件生成、后端模型、權(quán)限控制、前端視圖。

如果是才接觸odoo,這一步驟不需要去關(guān)心字段是否必填、是否可讀、是否可見等字段屬性,哪怕把所有的字段都顯示出來也沒有關(guān)系。

舉例說明:

《odoo16 創(chuàng)建第一個(gè)應(yīng)用插件》這一章的目的就是實(shí)現(xiàn)這一步驟。

步驟三:數(shù)據(jù)表內(nèi)的邏輯關(guān)系

步驟說明:

1、這一步驟就需要去關(guān)心字段是否必填、是否可讀、是否可見、字段跟蹤等字段屬性了,比如學(xué)生的姓名必填;

常用到的有:required、tracking、default,這一部分在odoo字段類型詳解有詳細(xì)說明。

2、數(shù)據(jù)表內(nèi)的字段計(jì)算關(guān)系,比如根據(jù)身份證號(hào)計(jì)算出出生年月和性別;這一步驟會(huì)經(jīng)常用到depends、onchange、constrains,這些稱之為裝飾器;depends和constrains是在數(shù)據(jù)寫入時(shí)觸發(fā),onchange是在前端視圖上變化時(shí)觸發(fā),注意體會(huì)其區(qū)別;

3、有些字段還需要定時(shí)任務(wù)來實(shí)現(xiàn),比如年齡隨著時(shí)間的變化而變化;

舉例說明:

以學(xué)生模型為例:

定時(shí)任務(wù)實(shí)現(xiàn)方式:

在data目錄下增加ir_cron_data.xml

在__manifest__.py中引用

步驟四:數(shù)據(jù)表間的邏輯關(guān)系

步驟說明:

1、比如一個(gè)班級(jí)有多少個(gè)學(xué)生,是班級(jí)表與學(xué)生表之間的關(guān)系;

一個(gè)年級(jí)有多少個(gè)班級(jí),是年級(jí)表與班級(jí)表之間的關(guān)系;

一個(gè)學(xué)生選了多少門課,是學(xué)生表與課程表之間的關(guān)系;

2、這一步驟在后端模型中會(huì)經(jīng)常用到depends、onchange、constrains;在前端視圖中經(jīng)常會(huì)用到oe_button_box在form中顯示關(guān)系;

3、特別注意的是字段的ondelete屬性,True說明父表記錄刪除時(shí),子表也要?jiǎng)h除;比如年級(jí)刪除時(shí),班級(jí)也需要?jiǎng)h除;班級(jí)刪除時(shí),學(xué)生記錄就不需要?jiǎng)h除,因?yàn)閷W(xué)生是通過入學(xué)與班級(jí)關(guān)聯(lián)起來的,不管班級(jí)存不存在,學(xué)生都是存在的,這時(shí)ondelete就是False或者不設(shè)置;

舉例說明:

一個(gè)班級(jí)有多少個(gè)學(xué)生,這里有兩個(gè)方法,一個(gè)是計(jì)算學(xué)生數(shù)量,一個(gè)是查看學(xué)生明細(xì);

class_archives_views.xml

對(duì)應(yīng)的視圖也需要修改,有兩種方式,可以放到button_box里面,也可以放到page頁簽中;

步驟五:業(yè)務(wù)邏輯關(guān)系

步驟說明:

1、當(dāng)把前面的幾個(gè)步驟都實(shí)現(xiàn)時(shí),就可以開始業(yè)務(wù)邏輯關(guān)系代碼的編寫;

2、表內(nèi)狀態(tài)的變化,比如課程設(shè)置好了的確認(rèn);表間的業(yè)務(wù)邏輯關(guān)系,比如學(xué)生的選課,學(xué)生年級(jí)的變化等,都屬于業(yè)務(wù)邏輯關(guān)系,當(dāng)然這是比較簡(jiǎn)單的舉例;

舉例說明:

為學(xué)生設(shè)置了狀態(tài),通過按鈕實(shí)現(xiàn)狀態(tài)的變化;

總結(jié)

作為初學(xué)者,能夠熟練的完成以上5個(gè)步驟就可以了。


odoo16 寫好一個(gè)插件的5個(gè)步驟的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
营山县| 桃江县| 同心县| 文成县| 喀喇| 临潭县| 焦作市| 阳山县| 丰原市| 水城县| 岳阳县| 郎溪县| 苏尼特右旗| 陵水| 石台县| 剑阁县| 宝应县| 竹北市| 洪江市| 包头市| 大姚县| 泉州市| 陇南市| 安远县| 府谷县| 菏泽市| 西藏| 龙口市| 乌鲁木齐市| 汶川县| 剑川县| 苏尼特左旗| 进贤县| 资中县| 自贡市| 江城| 富川| 布尔津县| 沛县| 萍乡市| 辽宁省|