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

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

odoo16 創(chuàng)建第一個(gè)應(yīng)用插件

2023-08-30 21:50 作者:OdooWizard  | 我要投稿

重寫(xiě)一遍的原因是視頻太模糊了,看不清,也不好復(fù)制代碼;

本章節(jié)我們將向大家介紹如何用odoo16創(chuàng)建第一個(gè)插件。

在此之前,你可以了解擴(kuò)展的知識(shí):

E-R圖

正則表達(dá)式

MVC模式

繼承

odoo字段類(lèi)型詳解

步驟一:數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)

在經(jīng)過(guò)需求分析→詳細(xì)設(shè)計(jì)后,我們得到如下E-R圖。

學(xué)生管理E-R圖

步驟二:插件生成

odoo生成一個(gè)可以安裝的插件只需要一個(gè)__manifest__.py文件。

在odoo 16中,__manifest__.py文件是用于描述應(yīng)用程序的元數(shù)據(jù)和配置信息的文件。以下是__manifest__.py文件中一些常用參數(shù)的說(shuō)明,所有的參數(shù)寫(xiě)成一個(gè)字典:

name:??應(yīng)用程序的名稱(chēng)。

summary: 應(yīng)用程序的簡(jiǎn)短描述,通常用于應(yīng)用商店的列表頁(yè)面。

description: 應(yīng)用程序的描述信息,用于在應(yīng)用商店或其他地方展示。

version: 應(yīng)用程序的版本號(hào)。

category:應(yīng)用程序的分類(lèi)。

website: 應(yīng)用程序的官方網(wǎng)站。

author: 應(yīng)用程序的開(kāi)發(fā)者或發(fā)布者名稱(chēng)。

company:應(yīng)用程序的公司。

depends: 指定應(yīng)用程序依賴(lài)的odoo模塊列表。

license: 應(yīng)用程序的許可證信息,如GPLv3等。

application:是否為應(yīng)用程序,如銷(xiāo)售是應(yīng)用程序,銷(xiāo)售報(bào)表則不是。

installable: 是否可以作為odoo模塊安裝。通常為T(mén)rue。

auto_install:是否自動(dòng)安裝,例如銷(xiāo)售報(bào)表依賴(lài)銷(xiāo)售,則可以設(shè)置為如果銷(xiāo)售安裝后,銷(xiāo)售報(bào)表自動(dòng)安裝。

這些參數(shù)可以根據(jù)具體需求進(jìn)行配置和修改,以滿足應(yīng)用程序的需求和特性。

odoo.conf配置文件我們改兩個(gè)地方,addons_path和dbfilter

addons_path:我們新增的插件放到ilearning目錄下,因此將ilearning目錄添加在addons_path中,以逗號(hào)隔開(kāi);addons_path以odoo-bin所在的目錄為參考目錄,因此ilearning的相對(duì)路徑為odoo\ilearning;

dbfilter:是根據(jù)正則表達(dá)式匹配要顯示的數(shù)據(jù)庫(kù),比如student_sys可以匹配student_sys開(kāi)頭的數(shù)據(jù)庫(kù),比如student_sys123,student_sys__等;

odoo.conf修改

運(yùn)行odoo16,創(chuàng)建一個(gè)應(yīng)用,注意:配置了dbfilter,所以數(shù)據(jù)庫(kù)一定要以student_sys開(kāi)頭,我們就直接用student_sys。

創(chuàng)建數(shù)據(jù)庫(kù)

應(yīng)用列表

這樣,我們就能看到ilearning下面的jcerp_student_01插件了,只是我們其他插件是寫(xiě)好了的,所以也一并都能夠看到。

步驟三:后端模型

后端模型是寫(xiě)在.py文件中的,將后端模型代碼放在models中,并通過(guò)__init__.py引用models,models中的__init__.py再引用其目錄下的.py模型文件,這是一種編程規(guī)范,符合MVC模式,早期odoo的.py文件直接放在插件根目錄下,從功能上來(lái)說(shuō)也不影響。

MVC模式
插件下的__init__.py引用models

models下的__init__.py引用模型.py文件

按照步驟一我們?cè)O(shè)計(jì)的數(shù)據(jù)結(jié)構(gòu),我們繼承了models.Model,代碼如下:

odoo的字段類(lèi)型可以參考:odoo字段類(lèi)型詳解

class_archives.py

course_archives.py

grade_archives.py

student_archives.py

步驟四:權(quán)限控制

權(quán)限文件是放在security的ir.model.access.csv文件中,另外還有security.xml以后再講。

寫(xiě)法也簡(jiǎn)單

id:access_模型(_連接)_權(quán)限組,例如學(xué)生用戶權(quán)限,access_student_archives_group_user或者access_student_archives_user;

name:可以用模型(.連接),例如學(xué)生用戶權(quán)限,student.archives

model_id:必須是:model_模型(_連接),model_student_archives

group_id:群組,這里我們只需要知道基本用戶組是base.group_user

rwcu:讀寫(xiě)增刪權(quán)限

整體的意思就是群組base.group_user對(duì)學(xué)生具備可讀可寫(xiě)可創(chuàng)建可刪除的權(quán)限,那么如果某個(gè)用戶賦予了這個(gè)群組,那么這個(gè)用戶就具備了可讀可寫(xiě)可創(chuàng)建可刪除的權(quán)限。

步驟五:前端視圖

注意:要把所有的視圖文件、權(quán)限文件都在__manifest__.py的data中引用?。?!

__manifest__.py的data中引用

student_archives_views.xml為例:

菜單視圖:從代碼來(lái)看,比較明了,就是定義了一個(gè)學(xué)生管理系統(tǒng),并且在其下又定義了4個(gè)子菜單,父子菜單通過(guò)parent來(lái)關(guān)聯(lián),頂級(jí)菜單沒(méi)有parent;

name:菜單名稱(chēng)

id:菜單的id,整個(gè)系統(tǒng)必須唯一,一般以menu_開(kāi)始命名;

web_icon:頂級(jí)菜單的圖標(biāo);

sequence:平級(jí)菜單的顯示順序;

action:點(diǎn)擊菜單觸發(fā)的動(dòng)作,頂級(jí)菜單也可以指定動(dòng)作,如果不指定,則默認(rèn)顯示第一個(gè)具有action的子菜單對(duì)應(yīng)的動(dòng)作。如果某一級(jí)菜單下所有的子菜單都沒(méi)有action,則該菜單不顯示。

action視圖:

也稱(chēng)動(dòng)作視圖,是點(diǎn)擊菜單后執(zhí)行的動(dòng)作,動(dòng)作的效果是根據(jù)action的定義顯示對(duì)應(yīng)的視圖。

id:整個(gè)系統(tǒng)必須唯一,以action_開(kāi)頭,對(duì)應(yīng)的模型是ir.actions.act_window

name:進(jìn)入界面后,界面顯示的名稱(chēng);

view_mode:該action視圖對(duì)應(yīng)有哪些視圖,字段較多一般會(huì)選擇tree及form視圖,字段較少時(shí)只選擇tree視圖即可;一般這些視圖都需要我們?nèi)ザx,如果不定義,odoo會(huì)根據(jù)后端模型自動(dòng)生成視圖。

view視圖:

一般來(lái)說(shuō),我們會(huì)定義action中view_mode中的視圖與搜索視圖;

tree視圖:

id:整個(gè)系統(tǒng)必須唯一,一般以view_xx_tree命名,對(duì)應(yīng)的model是ir.ui.view

name:tree視圖的名稱(chēng)

model:這里的model一定要與后端模型保持一致

arch:tree視圖的內(nèi)容,按照tree>field

form視圖:

id:整個(gè)系統(tǒng)必須唯一,一般以view_xx__form命名,對(duì)應(yīng)的model是ir.ui.view

name:form視圖的名稱(chēng)

model:這里的model一定要與后端模型保持一致

arch:form視圖的內(nèi)容,form>sheet>group>group>field層級(jí),可以自行去掉某一層級(jí)觀察效果

search視圖:

id:整個(gè)系統(tǒng)必須唯一,一般以view_xx__search命名,對(duì)應(yīng)的model是ir.ui.view

name:search視圖的名稱(chēng)

model:這里的model一定要與后端模型保持一致

arch:search視圖中的條件字段,可以是后端模型中的char、selection、對(duì)象;

class_archives_views.xml

course_archives_views.xml

grade_archives_views.xml

運(yùn)行效果


odoo16 創(chuàng)建第一個(gè)應(yīng)用插件的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
大同县| 宜良县| 吉木萨尔县| 紫阳县| 长岭县| 芒康县| 盐边县| 贺州市| 四会市| 桃园县| 清徐县| 松阳县| 武安市| 弥勒县| 常熟市| 久治县| 东阿县| 从化市| 揭阳市| 普定县| 安徽省| 襄汾县| 巨鹿县| 五大连池市| 临朐县| 勃利县| 车致| 稻城县| 南平市| 奈曼旗| 乐昌市| 民县| 剑阁县| 天等县| 从化市| 浦东新区| 昌宁县| 五河县| 临安市| 宝兴县| 邢台市|