扫码阅读
手机扫码阅读

Odoo丨Odoo框架源码研读三:异常处理与定制化开发

313 2023-09-22
Odoo源码研读摘要

Odoo源码研读:异常与定制化开发

本期内容聚焦于Odoo源码的异常处理与定制化开发。前两期内容分别探讨了Odoo源码的前后端交互以及ORM和日志,本期则继续深入。

异常处理

Odoo在异常处理方面继承并封装了Python内置异常,其处理方式与Python相同。主要通过raise关键字主动抛出异常,以及try-except-finally结构来捕获和处理异常。

流程引擎与业务流程

Odoo作为ERP产品,通过状态机的概念来控制业务流程。例如,在销售模块中,订单状态的变化从报价到销售订单就代表了流程的推进。这些流程的跳转一般是通过视图跳转完成,通常通过按钮调用动作(Action)来实现。

定制化开发

Odoo的定制化开发可以分为手动编码和配置化开发两种方式:

  • 手动编码:通过新建模块继承原有模块,并进行拓展。拓展包括Model、XML视图、前端组件和Controller的扩展。
  • 配置化开发:使用Odoo Studio在开发者模式下进行视图XML的修改,通过模块继承和视图继承来避免修改丢失。Studio模块还支持通过拖拽方式配置和扩展模块。

Studio模块的代码揭示了其背后是通过调用封装的接口,例如创建App、编辑视图和设置背景图片等。这些操作实质上是直接在数据库中创建和修改对象,而不需要模块安装的过程。

总结

文章主要分析了Odoo后端对请求的处理流程,介绍了其后端架构。虽然许多细节如线程局部存储、缓存、ORM与数据库交互的具体细节、前端框架等未深入讨论,但这些内容将是未来研究的重点。本期分享至此结束,欢迎指正和讨论。

Odoo框架源码解读干货,用心奉上,欢迎交流。

本期作者:黄华信

想要了解更多,点击 查看原文