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

Odoo安装Mediocre DHX Gantt甘特图时出现datetime类型运算报错

Odoo安装Mediocre DHX Gantt甘特图模块类型错误解决方案

报错根因

该错误是模块代码中混用datetime.date(日期类型)和datetime.datetime(日期时间类型)做减法运算导致的。Odoo中纯日期字段返回date类型,带时分秒的日期时间字段返回datetime类型,模块未做类型统一就直接计算时间差,触发类型不兼容错误。

可行解决方案

方案1:手动修复模块代码

  • 定位到模块中甘特图数据计算相关的代码文件,通常是models目录下处理甘特图数据返回的方法(常见方法名如_get_gantt_data、gantt_view)
  • 对参与时间差计算的两个值统一类型,可选两种处理方式:
    • 统一转为datetime类型:用datetime.datetime.combine(日期值, datetime.time.min)将date类型转为同一天0点的datetime类型
    • 统一转为date类型:用日期时间值.date()将datetime类型转为对应日期的date类型
  • 代码示例:
    原错误代码逻辑:
# 此处start_date/end_date可能一个是date,一个是datetime,直接相减报错
duration = end_date - start_date

修复后代码:

from datetime import datetime
# 统一转成datetime类型再计算
if isinstance(start_date, datetime.date) and not isinstance(start_date, datetime.datetime):
    start_date = datetime.combine(start_date, datetime.time.min)
if isinstance(end_date, datetime.date) and not isinstance(end_date, datetime.datetime):
    end_date = datetime.combine(end_date, datetime.time.min)
duration = end_date - start_date

方案2:校验模块版本适配性

  • 确认你安装的Mediocre DHX Gantt模块版本和当前Odoo版本完全匹配,部分旧版模块未适配Odoo 15及以上版本的时间字段返回规则,下载对应你Odoo版本的最新模块安装包重新安装即可解决。

方案3:检查甘特图绑定字段配置

  • 进入甘特图视图配置页,检查绑定的开始时间、结束时间字段类型,确保两个字段同为日期类型,或者同为日期时间类型,不要混用两种类型的字段绑定到甘特图的起止时间配置项。

报错截图

报错截图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 21:06:00