Odoo学习笔记*

......

Posted by 呆贝斯 on May 9, 2022

学习网站

odoo集结地👆 odoo官方文档👆

框架概述

多层应用

Odoo 遵循 多层架构 ,这意味着演示、业务 逻辑和数据存储是分开的。 更具体地说,它使用三层架构,表示层是 HTML5、JavaScript 和 CSS 的组合, 逻辑层独占 用 Python 编写,而数据层仅支持将 PostgreSQL 作为 RDBMS。自 15.0 版以来, Odoo 正在积极过渡到使用自己内部开发的 OWL 框架作为其表示层的一部分。旧版 JavaScript 框架仍受支持, 但会随着时间的推移而被弃用。

模块

module
├── models
│   ├── *.py
│   └── __init__.py
├── data
│   └── *.xml
├── __init__.py
└── __manifest__.py

开发环境配置

管理Odoo服务端实例

创建Odoo插件模块

模型

模型方法

  • create 为模型创建一条新纪录
      class Demo(models.Model):
          _name = 'demo'
          def create(self,vals):
              return super(Demo, self).create(vals)
    

    参数: vals 是一个{模型字段的名称:字段的值}组成的字典,可以使用模型的 create()方法创建新 record。 如果需要,odoo 将自动调用模型的 default_get()方法去补充一些必填但vals 中不存在的字段。 返回值: 新纪录

  • write 用 vals 字典参数去更新 recordset 中的所有 record 的字段

  • unlink 从数据库删除当前 recordset 中的 record, 可能抛出的异常

  • browse 在当前环境下,返回一个[ids]列表与数据库中一一对应的一个 recordset 参数可以为空,一个单独的 id,或者一个 id 序列

  • search 接收一个域表达式,并返回符合条件记录的记录集 order是一个数据库查询语句中ORDER BY使用的字符串,通常是一个逗号分隔的字段名列表.每个字段都可接DESC关键字,用于表示倒序排列 limit设置获取记录的最大条数 offset忽略前n条记录,可配合limit使用来一次查询指定范围记录

视图

权限安全

Web服务端开发

Odoo中的远程过程调用(RPC)

网页客户端开发

调试模块

高级开发技巧

Odoo Web Library (OWL)

使用Odoo.sh管理、部署和测试

性能优化

管理模块数据