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

如何修复Odoo sign模块报错:AttributeError: module 'werkzeug' has no attribute 'redirect'

Odoo Sign模块werkzeug.redirect报错排查与修复方案

错误原因

该AttributeError: module 'werkzeug' has no attribute 'redirect'报错是werkzeug版本迭代导致的API变动问题:werkzeug v2.1.0及以上版本将原本顶层可直接调用的redirect方法迁移到了werkzeug.utils子模块下,旧版Odoo Sign模块的代码仍按照旧版werkzeug的调用规则编写,因此触发属性不存在的错误。

排查步骤

  • 执行命令pip show werkzeug查看当前环境安装的werkzeug版本,若Version字段值≥2.1.0即可确认是API变动导致的问题
  • 检查/opt/odoo/enterprise/addons/sign/controllers/main.py文件的导入语句,确认是否仅导入了werkzeug顶层模块,未导入utils子模块下的redirect方法

修复方案

方案1:适配新版werkzeug(推荐)

直接修改报错的代码逻辑,适配新版werkzeug的API规则,不需要降低依赖版本:

  1. 找到报错的返回行,将原调用路径werkzeug.redirect修改为werkzeug.utils.redirect,修改后代码如下:
return werkzeug.utils.redirect('/sign/document/%s/%s' % (id, token))

也可以选择在文件头部导入区添加导入语句:

from werkzeug.utils import redirect

然后将报错行修改为:

return redirect('/sign/document/%s/%s' % (id, token))
  1. 修改完成后重启Odoo服务,验证签署后跳转功能是否正常即可。

方案2:回退werkzeug到兼容版本

如果不想修改官方企业版模块的代码,可以将werkzeug降级到仍支持顶层调用redirect的最后一个稳定版本:

pip install werkzeug==2.0.3

执行完成后重启Odoo服务即可生效。

注意:如果使用的是官方正版Odoo企业版,优先升级对应版本的最新补丁包,官方已针对该werkzeug兼容问题发布了官方修复,避免自行修改官方模块代码后后续版本升级出现冲突。

内容的提问来源于stack exchange,提问作者A.Sasori

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 19:09:00