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

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

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',
    ],
}

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5503815.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-13
下一篇 2022-12-13

发表评论

登录后才能评论

评论列表(0条)

保存