Python中如何进行Odoo开发?

前言

近期由于工作需要,开始学习 Odoo。Odoo 是一个开源框架,针对 ERP 的需求发展而来,适合定制出符合客户各种需求的 ERP 系统和电子商务系统。Odoo 基于 python 语言,使用 PostgreSQL 数据库进行数据存储。 Odoo 是跨平台的系统,它可以在运行在 windows、Mac 和 Linux 任一主机上,本教程选择的系统是 ubuntu,选择的原因是 Odoo 的开发团队将 Debian/Ubuntu 作为了参考的部署平台,所以遇到问题更容易得到帮助和相关资源。 本教程篇幅很长,待续


Python中如何进行Odoo开发?

1 回复

在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参数启动。

总结:从定义数据模型开始,然后做界面,最后写业务逻辑。

回到顶部