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

Django将模型移至公共文件后LookupError报错的解决方法

解决Django模型重构后Redis存储对象引发的LookupError问题

重构Django项目时,为解决多应用间模型字段重复、定义不一致的问题,我将各应用的模型统一整合到一个公共models.py文件中,并注释掉了stat_table应用内已完成迁移的SolarStationAddInfo模型。但启动项目时触发了如下报错:

LookupError: App 'stat_table' doesn't have a 'SolarStationAddInfo' model

问题根因

经排查,stat_table服务启动时会读取Redis中stations键存储的SolarStationAddInfo实例对象,而这些对象是重构前基于旧stat_table应用的models.py导入创建并序列化存储的。现在模型类的路径已变更,反序列化时无法找到对应类,因此抛出查找错误。

解决步骤

  • 修改项目中所有引用SolarStationAddInfo的代码,将导入路径更新为新的公共models.py路径
  • 执行自定义的Redis对象重建函数,重新生成SolarStationAddInfo实例并覆盖Redis中stations键对应的存储内容,确保反序列化后的对象关联到新的模型类

关键提醒

注意:若项目使用Redis等缓存/存储服务保存Django模型对象,在重构模型类(包括移动类文件、变更类的归属应用/模块)后,必须重新生成并存储相关对象,否则会因类路径不匹配引发类似的查找错误。

内容的提问来源于stack exchange,提问作者Віктор Ніжурін

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 21:27:27