You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何排查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",找出所有扩展该模型的定制模块,逐一检查它们对按钮方法的修改或扩展。
  • 开发者模式辅助排查
    开启开发者模式后:

    • 进入「技术 → 视图 → 按钮」,找到目标按钮,查看绑定的动作或方法,确认是否有间接触发的服务器动作。
    • 启用「调试 → 激活日志」,点击按钮后查看日志面板,获取更直观的方法执行顺序。
  • 静态代码搜索
    在项目根目录执行以下命令,找出所有与目标按钮方法相关的调用或重写:

    grep -r "your_button_method" --include="*.py" ./addons
    

    结果会列出所有引用该方法的文件,包括定制模块中对它的调用、继承重写,帮助你快速梳理关联方法。

内容的提问来源于stack exchange,提问作者holydragon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 07:45:29