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

运行Django makemigration提示Database对象未实现布尔值检测如何解决

报错产生原因

该错误由Djongo与高版本PyMongo的兼容性问题导致:

  • PyMongo 4.0及以上版本取消了Database对象的布尔值判断逻辑,不允许直接对Database实例做if 实例这类隐式布尔校验,要求必须显式通过实例 is not None判断是否存在。
  • 当前使用的Djongo稳定版源码中,关闭数据库连接的逻辑仍使用if self.connection的隐式判断,触发PyMongo的拦截逻辑就会抛出该错误。
解决办法

方案1:降级PyMongo到适配版本(最稳妥)

目前Djongo稳定版适配的最高PyMongo版本为3.12.3,执行以下命令降级即可:
pip install pymongo==3.12.3
降级完成后重新运行makemigrations、migrate命令即可正常执行。

方案2:手动修改Djongo源码(适合需要使用高版本PyMongo的场景)

手动修改Djongo的源码兼容高版本PyMongo即可,步骤如下:

  • 找到Python环境下的Djongo安装路径,打开site-packages/djongo/base.py文件
  • 定位到代码第208行的if self.connection:语句
  • 将其修改为if self.connection is not None:
    修改后保存文件,重新执行Django数据库相关命令即可正常运行。

你当前的settings.py中数据库配置适配本地无密码启动的MongoDB,无需额外调整,版本兼容性问题修复后即可正常连接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 05:27:02