Python中如何进行Odoo开发?
前言
近期由于工作需要,开始学习 Odoo。Odoo 是一个开源框架,针对 ERP 的需求发展而来,适合定制出符合客户各种需求的 ERP 系统和电子商务系统。Odoo 基于 python 语言,使用 PostgreSQL 数据库进行数据存储。 Odoo 是跨平台的系统,它可以在运行在 windows、Mac 和 Linux 任一主机上,本教程选择的系统是 ubuntu,选择的原因是 Odoo 的开发团队将 Debian/Ubuntu 作为了参考的部署平台,所以遇到问题更容易得到帮助和相关资源。 本教程篇幅很长,待续
Python中如何进行Odoo开发?
在Odoo里搞开发,主要就是写模块。核心就几块:模型、视图、业务逻辑。
1. 搭环境
先装好Odoo,建议用源码跑,方便调试。建个自己的模块目录,比如my_module。
2. 基本结构
一个模块最少需要俩文件:__manifest__.py和__init__.py。
__manifest__.py里写模块信息:
{
'name': '我的模块',
'version': '1.0',
'depends': ['base'],
'data': [
'views/my_model_views.xml',
],
}
3. 定义模型
在models/my_model.py里:
from odoo import models, fields
class MyModel(models.Model):
_name = 'my.model'
_description = '我的模型'
name = fields.Char(string='名称', required=True)
value = fields.Integer(string='值')
active = fields.Boolean(string='有效', default=True)
4. 视图文件
在views/my_model_views.xml里:
<odoo>
<record id="my_model_tree_view" model="ir.ui.view">
<field name="name">my.model.tree</field>
<field name="model">my.model</field>
<field name="arch" type="xml">
<tree>
<field name="name"/>
<field name="value"/>
</tree>
</field>
</record>
</odoo>
5. 业务逻辑 在模型里加方法:
def action_do_something(self):
for record in self:
record.value += 1
6. 菜单和安全
菜单在views/menu.xml里定义,权限在security/ir.model.access.csv里配。
7. 安装测试
把模块目录丢到Odoo的addons路径里,更新应用列表就能装了。调试直接用Odoo的开发者模式,看日志用--log-level=debug参数启动。
总结:从定义数据模型开始,然后做界面,最后写业务逻辑。

