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

Odoo 16插件开发:覆写内置方法失败求助

Odoo 16 覆写mail.activity的action_notify方法失效问题排查与解决

1. 修正插件依赖配置

你的插件必须明确依赖mail模块,否则Odoo加载顺序会导致覆写代码无法生效。在__manifest__.py中添加依赖配置:

'depends': ['mail'],

模块加载顺序规则是:依赖模块先加载,你的模块后加载,这样才能正确覆写核心模块的方法。

2. 匹配原方法的完整签名

Odoo 16核心mail.activity的action_notify方法带有**kwargs参数,你的方法签名不匹配会被识别为新方法而非覆写。修改代码如下:

from odoo import models
import logging
_logger = logging.getLogger(__name__)

class MailActivity(models.Model):
    _inherit = 'mail.activity'

    def action_notify(self, **kwargs):
        _logger.info("LOG: action_notify method invoked")
        return  # 直接返回跳过原有功能

3. 正确升级插件并清除缓存

  • 重启Odoo服务,确保新代码被加载
  • 在Odoo后台找到你的插件,点击升级(已安装的模块需升级而非重新安装,才会重新加载代码)
  • 可手动删除插件目录及Odoo核心目录下的__pycache__文件夹,清除Python字节码缓存

4. 验证日志输出

如果日志未显示,检查Odoo日志级别配置:

  • 启动Odoo时添加参数--log-level=info,或在odoo.conf中设置log_level = info
  • 临时改用_logger.warning测试(warning级别默认开启,更容易看到输出)

5. 检查文件与导入正确性

  • 确认模型文件名是models/mail_activity.py,无拼写错误
  • 确认models/__init__.py中from . import task, mail_activity语句无拼写错误
  • 根目录__init__.py的from . import models配置正确

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 07:47:19