一、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:模块是否会自动安装