ODOO18菜鸟二次开发系列(1)-环境搭建和故障解决调试技巧


前言

个人理解,odoo就是一个控制器prc通过模型(py+js)读取数据库内容用以视图(xml)展示的工具。其底层数据调用通过ORM框架。对于我们菜鸟来说,只需要学习odoo官方教程。掌握好基本的xml和py的修改和编写即可满足90%以上的需要。
为了高效进行二次开发调试,需要搭建开发和调试平台。同时,基于二次开发特点,需要掌握一些初步的断点及调试技巧。本人作为odoo菜鸟,将相关学习和问题解决过程整理为本套教程,力求浅显易懂帮助有兴趣的朋友共同进步。


一、搭建开发环境

1.安装源码搭建环境

由于我此前python一直用的vscode作为平台,因此习惯还是用vscode来开发。具体开发环境搭建参考老赵的文章:
win10下搭建odoo18开发环境

到这里免费下载odoo官方开发手册中文教程
odoo专家老赵的博客,也可以去B站看他的视频教程。
部分简单的基础知识,请自行查阅手册,本专栏不再赘述。
在这里插入图片描述

2.基本参数设置

一般而言,源码目录最好放置在D盘,如果此前已经一键安装过ODOO,可以免去安装postgres数据库的步骤,直接可以修改源码的odoo.conf调用:

[options]
addons_path = addons,myaddons //加,myaddons,定制化开发的addons放这个目录便于查找
db_host = 127.0.0.1
db_port = 5432
db_name = odoo18    //名称需与此前一键安装的不同
db_filter =  odoo18
db_user = odoo
db_password = odoo18 
load_language = zh_CN
log_level = info
admin_passwd =123
http_port = 80 //原端口8069,这里改为80,方面本地访问
session_timeout = 7200 //7200秒后对话过期

3.添加AI工具

VSCODE除了按网上教程安装必要的扩展外,还可以安装如下几个AI工具,加快开发速度:
在这里插入图片描述
推荐灵码的对比功能。同时要注意保持对AI编程的质疑精神,有时候AI会将简单的问题复杂化。

二、odoo的二次开发调试技巧(持续更新)

1.刷新机制

为了加快访问速度,浏览器会有大量缓存文件,因此每次刷新页面最好用ctrl+F5。
此外,注意当模型(py文件)修改后,必须重启并升级模型才能生效。视图文件(xml)修改后,加入"–dev=xml"可以不需要升级。虽然启动文件加入"-u", “某模型名称”,可以重启odoo服务并自动升级模型,但实测少数某些情况(如模型有bug)不会完成自动升级,仍需网页手动升级。

2.浏览器查看

由于xml是静态页面,因此需要使用浏览器的开发者工具来查看其内部数据。
通过F12,调出开发者工具,点击”网络“由于一般使用call_kw控制器调用模型,因此筛选输入call_kw。以search方法为例,点search read,可以查看其读取到后台的对象数组。
在这里插入图片描述

3.浏览器断点

点击源代码,可以在web.assets_web.min.js内找到需要断点的位置。
在这里插入图片描述

4.页面排版错版

(20250421更新)
为了安全将附件与源码分开放置,修改odoo.conf, 增加data_dir = D:\odoo_data_dir
刷新页面后发现整改版式出现错乱。
研究半天,想到是不是session问题,于是将原sessions文件夹下3个文件夹copy到data dir,问题解决。
(20250422更新)
由于恢复数据库名称发生变化,若修改odoo.conf绑定新数据库名称,则需立即将filestore里面的文件夹名称改为和新数据库名称对应,否则同样出现页面错版问题

5.新增字段不能正确添加到数据库

通过继承方式在模型(.py)文件中可以为数据库增加字段,如下示意

class ResPartner(models.Model):
    _inherit = 'res.partner'
    _description = 'Partner Extension'  # 添加描述
    # 新增字段
    e_name = fields.Char(string='英文名')

但按此前教程升级自定义模块后,出现字段不存在错误提示。查看数据库,发现确实没有增加字段。
由于自定义模块第一次安装时相关新增字段是自动添加的,本次增补字段怀疑是需要重新安装。
因此将启动模块的u命令改为i,强制重新安装,问题解决。

6.手动删除不存在的文件记录

偶尔由于操作失误,造成出现终端运行一直出现
FileNotFoundError: [Errno 2] No such file or directory: ‘d:\odoo_data_dir\filestore\odooD\ac/ac2a935c445b4a44ecb11e8b692d41661f9ecae1’
的错误提示,虽然不影响使用,但有时候会掩盖重要信息,因此有必要从数据库手动删掉。
pgadmin进入管理页面
在这里插入图片描述
query tool输入命令:

SELECT id, name, res_model, res_id, create_date
FROM ir_attachment
WHERE store_fname = '74/744fc247b813c44f4cf02357706e88b283cb0f97';

找到出问题的行,在attachment表删除即可

7.快速开启调试模式(20250426)

在浏览器地址栏的地址后面加?debug=1,可快速开启调试模式。


总结

本期主要介绍开发需搭建 VSCode 环境,配置 odoo.conf 参数,安装 AI 工具辅助编码。调试技巧包括模型升级机制、浏览器开发者工具分析 call_kw 请求等技巧,并将持续进行更新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值