一、odoo模塊的一般目錄結構
my_addons
├─ __init__.py
├─ __manifest__.py
├─ controllers
│ ├─ __init__.py
│ └─ controllers.py
├─ data
├─ demo
│ └─ demo.xml
├─ i18n
├─ models
│ ├─ __init__.py
│ └─ models.py
├─ security
│ └─ ir.model.access.csv
├─ static
└─ views
├─ templates.xml
└─ views.xml
二、各個文件夾使用講解
(1)、init.py:Python代碼由 init.py加載,通過該文件導入.py文件及代碼子目錄。子目錄中包含的Python代碼,再由其內部的__init__.py導入。
(2)、manifest.py:模塊聲明文件,manifest.py文件中對當前模塊進行一些描述聲明。例如:data和demo鍵名所聲明的是供加載的數據文件,通常是用戶界面、fixture數據和演示數據中會使用到的XML和CSV文件。還可使用YAML文件,可以包含一些模塊加載時運行的過程指令,例如,通過程序生成或更新記錄而非在XML文件中加入數據。
(3)、controllers:自定義的控制器實現,自定義一些網頁或功能可通過Controller實現,包含網站控制器的代碼文件,用於為模塊提供各種功能。
(4)、data:初始化數據文件目錄
(5)、demo:包含帶演示數據的數據文件,對於測試、培訓或模塊評測都非常有用。
(6)、i18n:國際化文件目錄,針對不同語言有相應的翻譯文件與其對應,用戶登錄成功后在首選中修改語言后,系統會自動查找相應的翻譯文件
(7)、models:包含后端代碼文件,模塊中使用到的所有對象模型,相應的業務邏輯代碼都在次目錄下的文件中,模型對象繼承自models.Model
(8)、security:權限控制目錄,ir.model.access.csv文件中保存不同用戶分組對相應模型對象的增刪改查的權限控制。
(9)、static:靜態資源目錄。description目錄是一個項目描述目錄,icon.png是模塊的圖片,在應用看板中可以看到;此文件名稱都是固定的,圖片尺寸最好是100*100;也可在此目錄下使用一些html格式的文件對模塊做一個描述。src目錄是一些資源目錄如:js、css、images、xml
(10)、views:視圖文件目錄。models目錄下的模型對象的視圖文件,如表單視圖、列表視圖、搜索視圖、看板視圖等等
其他文件目錄:
(11)、wizard:向導目錄。向導模型在數據庫中也會建立相應的數據庫表,向導保存的是一些臨時使用的數據,視圖上多以彈出框形式展示,向導產生數據為臨時數據不會長時間在數據庫中保存,模型對象繼承自models.TransientModel
(12)、doc:模塊說明文檔目錄
(13)、report:模塊中有關的報表模型或者相應報表視圖文件
三、manifest.py:模塊配置文件詳解
name: 模塊名稱
version: 模塊版本
category: 模塊分類
sequence:模塊的序號
summary:模塊概述
description: 模塊功能描述
author:模塊作者
website:模塊主頁
depends: 模塊依賴的模塊集合
demo:演示數據文件集合
data: 模塊的所有視圖文件集合
qweb:自定義的Odoo視圖文件集合
installable: 模塊是否可以安裝
application: 模塊是否是應用
auto_install:模塊是否會自動安裝