如何排查Odoo中点击特定按钮时执行的所有方法?
排查Odoo按钮触发的所有关联方法的实用技巧
日志级调试追踪
启动Odoo时添加--log-level=debug_rpc参数,或者在配置文件中设置log_level = debug_rpc。点击目标按钮后,查看Odoo日志文件,日志会完整记录RPC调用的整个方法链,包括所有被触发的子方法、继承重写的方法,甚至定制模块里的扩展逻辑。断点调试逐行追踪
在已找到的按钮绑定方法开头插入调试断点:import pdb; pdb.set_trace()触发按钮后进入调试模式,输入
w命令查看当前完整调用栈,输入s进入被调用的子方法,n单步执行,能精准追踪每一个关联方法的执行路径。模块继承与方法溯源
- 用Python的
inspect模块定位方法的定义模块:
输出会显示方法的代码及所在文件,快速定位是否被定制模块重写。import inspect model = self.env['your.model'] print(inspect.getsource(model.your_button_method)) - 搜索项目中所有继承该模型的模块:在项目目录执行
grep -r "_inherit.*your.model" --include="*.py",找出所有扩展该模型的定制模块,逐一检查它们对按钮方法的修改或扩展。
- 用Python的
开发者模式辅助排查
开启开发者模式后:- 进入「技术 → 视图 → 按钮」,找到目标按钮,查看绑定的动作或方法,确认是否有间接触发的服务器动作。
- 启用「调试 → 激活日志」,点击按钮后查看日志面板,获取更直观的方法执行顺序。
静态代码搜索
在项目根目录执行以下命令,找出所有与目标按钮方法相关的调用或重写:grep -r "your_button_method" --include="*.py" ./addons结果会列出所有引用该方法的文件,包括定制模块中对它的调用、继承重写,帮助你快速梳理关联方法。
内容的提问来源于stack exchange,提问作者holydragon
相关产品推荐
相关产品推荐

