odoo 构建模块(构建命令和目录含义说明)

启动/停止Odoo服务器

Odoo采用C/S架构,客户端通过Web浏览器访问服务端,遵从RPC协议。业务逻辑和扩展通常在服务端执行,而只有添加客户端支持的新特征才会在客户端添加代码(例如,交互过程中新数据的映射表示)。启动服务器,只需要在shell中调用命令odoo-bin,或者完整的路径名调用:

odoo-bin

通过Ctrl-c或杀死相应的系统进程来停止Odoo服务。

构建一个Odoo模块

服务端扩展和客户端扩展都被封装为模块,这些模块可选择性的被安装,安装完成后通过数据库来加载。模块即可以是全新的业务逻辑,也可以是更改和扩展已有的业务逻辑。比如创建一个中国会计模块,将中国的会计准则添加到Odoo的通用会计中,也可以创建一个全新的实时可视化管理车队的模块。Odoo中的所有功能都是包含在模块中。

模块的组成

Odoo模块包含多个部分:
业务对象
  Python类,这些类会被Odoo框架自动持久化,持久化的方式决定于类的定义。
数据文件
  包括视图、菜单、动作、工作流、权限、演示数据等,以XML或CSV文件定义。
Web控制器
  处理Web浏览器的请求
静态页面数据
  网站或界面使用的图片、CSS或JavaScript文件

模块结构

每个模块都是模块目录中的一个子目录。可以通过--addons-path选项指定模块目录的路径。

提示
大多数命令行选项可以通过配置文件进行设置

Odoo模块由清单文件进行声明。查看清单文件文档了解详细信息。模块是一个包含__init__.py文件的的Python包,__init__.py文件包含了模块需要的导入的各Python文件。
例如,如果模块中包含mymodule.py文件,__init__.py应该这样写:

from . import mymodule

Odoo提供了脚手架机制来快速创建新模块,odoo-bin子命令scaffold用来创建一个空模块

$ odoo-bin scaffold <模块名> <模块放置路径>

windows 使用

python odoo-bin scaffold my_diy_module my_dir_path
python odoo-bin scaffold 模型名称 放置它的位置

该命令为模块创建一个子目录,并自动为模块创建一些标准文件。这些文件大多只包含被注释的代码和XML元素。后面将解释这些文件的含义。

执行后会发现在 odoo-12.0/my_addons 里面有个新建的文件夹 example, 里面会包含__init__.py、manifest.py、controllers、demo、models、security、views这几个文件夹。

应用目录含义说明

controllers          # 控制器 (HTTP路径)
data                # 演示和数据XML
doc                    # 模型说明
models                # 定义模型
report                # 报告
security            # 权限管理
i18n                # 翻译文件
views                # 视图和模型
static                # 静态文件css、js、img等
tests                # 存放 python 和 yml 测试用例
wizard                # 放临时的 model 和视图
__manifest__.py        # 模块详细信息&依赖

manifest.py 内容说明

# -*- coding: utf-8 -*-
{
    # 模型名
    'name': "example",

    # 摘要
    'summary': """
        模块简要说明,用作模块列表上模块下方的副标题""",
    # 介绍
    'description': """
        对模块用途的详细说明
    """,

    # 作者
    'author': "GMH",

    # 网址
    'website': "http://www.yourcompany.com",

    # Categories can be used to filter modules in modules listing
    # Check https://github.com/odoo/odoo/blob/12.0/odoo/addons/base/data/ir_module_category_data.xml
    # for the full list

    # 类别
    'category': 'Uncategorized',

    # 版本号
    'version': '0.1',

    # 应用模块依赖(此模块正常工作所必需的任何模块)
    'depends': ['base'],

    # Web每次需要加载的数据文件
    'data': [
        # 'security/ir.model.access.csv',
        'views/views.xml',
        'views/templates.xml',
    ],
        
    # 演示文件(只在演示模式下加载的文件)
    'demo': [
        'demo/demo.xml',
    ],
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个简单的示例,帮助你开始构建一个新的Odoo模块: 1. 首先,创建一个新的文件夹来存放你的模块。我们将其命名为“my_module”。 2. 在“my_module”文件夹中创建一个新的文件夹,命名为“models”。 3. 在“models”文件夹中,创建一个新的Python文件,命名为“my_model.py”。在该文件中,定义一个名为“my_model”的新模型,它将继承Odoo的“Model”类。例如: ```python from odoo import fields, models class MyModel(models.Model): _name = 'my_module.my_model' _description = 'My Model' name = fields.Char(string='Name') description = fields.Text(string='Description') ``` 在这个例子中,我们定义了一个名为“my_module.my_model”的新模型,它有两个字段:“name”和“description”。 4. 在“my_module”文件夹中,创建一个新的文件夹,命名为“views”。 5. 在“views”文件夹中,创建一个新的XML文件,命名为“my_model_view.xml”。在该文件中,定义一个名为“my_model_form”的新视图,它将显示“my_model”模型的数据。例如: ```xml <odoo> <data> <record id="my_model_form" model="ir.ui.view"> <field name="name">my_module.my_model.form</field> <field name="model">my_module.my_model</field> <field name="arch" type="xml"> <form> <sheet> <group> <field name="name"/> <field name="description"/> </group> </sheet> </form> </field> </record> </data> </odoo> ``` 在这个例子中,我们定义了一个名为“my_module.my_model.form”的新视图,它包含了“my_model”模型的两个字段:“name”和“description”。 6. 在“my_module”文件夹中,创建一个新的Python文件,命名为“__init__.py”。这个文件是必须的,即使它是空的。 7. 最后,在Odoo中安装你的新模块。在Odoo的主菜单中,点击“设置”-“应用程序”-“应用商店”,然后在搜索框中输入你的模块名称:“My Module”。点击“安装”按钮来安装你的新模块。 现在,你已经成功地构建了一个简单的Odoo模块

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值