https://zhuanlan.zhihu.com/p/34878235 #ODOO服务器部署(ubuntu系统)
https://www.jianshu.com/p/06e38310a465 #Odoo10开发教程一(构建模块)
https://segmentfault.com/a/1190000013472741 #「Odoo 基础教程系列」第一篇——环境准备
https://www.cnblogs.com/yangxunbo/p/10381516.html #Odoo 12 开发手册指南
todo
├── __init__.py
├── __manifest__.py
├── controllers
│ ├── __init__.py
│ └── controllers.py
├── demo
│ └── demo.xml
├── models
│ ├── __init__.py
│ └── models.py
├── security
│ └── ir.model.access.csv
└── views
├── templates.xml
└── views.xml
构建一个Odoo模块
服务端扩展和客户端扩展都被封装为模块,这些模块可选择性的被安装,安装完成后通过数据库来加载。模块即可以是全新的业务逻辑,也可以是更改和扩展已有的业务逻辑。比如创建一个中国会计模块,将中国的会计准则添加到Odoo的通用会计中,也可以创建一个全新的实时可视化管理车队的模块。Odoo中的所有功能都是包含在模块中。
模块的组成
Odoo模块包含多个部分:
业务对象
Python类,这些类会被Odoo框架自动持久化,持久化的方式决定于类的定义。
数据文件
包括视图、菜单、动作、工作流、权限、演示数据等,以XML或CSV文件定义。
Web控制器
处理Web浏览器的请求
静态页面数据
网站或界面使用的图片、CSS或JavaScript文件
模块结构
每个模块都是模块目录中的一个子目录。可以通过--addons-path选项指定模块目录的路径。
Odoo提供了脚手架机制来快速创建新模块,odoo-bin子命令scaffold用来创建一个空模块。
首先在项目根目录创建一个mymodules文件夹。
./odoo-bin scaffold todo mymodules
该命令为模块创建一个子目录,并自动为模块创建一些标准文件。这些文件大多只包含被注释的代码和XML元素。后面将解释这些文件的含义。
得到
数据文件
Odoo是一个高度数据驱动的系统,虽然行为是通过Python代码制定的,但一些模块的值是在加载时通过数据文件设置的。
提示:
一些模块的作用仅仅是为了将数据添加到Odoo中
模块数据通过带有
数据文件通过在manifest文件声明而被载入,他们既可以在data列表声明(始终载入)也可以在demo列表声明(仅在演示模式下载入)
修改监听端口
--http-port=(或-p)参数可以修改实例的监听端口(默认端口8069),不同的端口可以让我们在同一台机器上运行多个实例。
Odoo 11的修改:在 Odoo 11中引入--http-port参数以替代此前版本使用的--xmlrpc-port
下面就可以做个尝试,打开两个终端,第一个中输入
~/odoo-dev/odoo/odoo-bin --http-port=8070
第二个中输入
~/odoo-dev/odoo/odoo-bin --http-port=8071
此时就在同一台机器上使用不同端口运行了两个 Odoo 实例,这两个实例可以使用同一个数据库或不同数据库。这取决于我们使用的配置参数,并且两个端口上也可以运行相同或不同版本的 Odoo。
小贴士:不同 Odoo 版本必须使用不同的数据库。尝试在不同版本上使用相同数据库将无法正常运行,因为各大版本采用了不兼容的数据库模式。