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

Django执行makemigrations报错ImportError: 无法导入名称'UserProfile'

问题原因与修复方案

错误原因

  • 核心问题是Python模块循环导入冲突:user应用的models.py和video应用的models.py互相导入对方的模型类,Python加载模块时会优先执行导入语句,此时两个模块的模型类都还没完成定义,因此抛出找不到对应类的导入错误。
  • 你的代码存在冗余导入:你已经在关联字段中使用了Django支持的带引号的模型名懒引用写法,完全不需要显式导入对应的模型类,多余的导入语句直接触发了本次错误。

修复方法

  1. 删除两个models.py中的跨应用导入语句:
    • 删掉user/models.py里的from video.models import Video
    • 删掉video/models.py里的from user.models import UserProfile
  2. 保持现有关联字段的写法不变即可:你当前代码中的ManyToManyField('Video')、ForeignKey('UserProfile')都是合法的Django懒引用写法,Django会在所有模型加载完成后自动解析对应的模型类,无需手动导入。

修复完成后重新执行python manage.py makemigrations命令即可正常生成迁移文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 01:27:01