删除migrations及__init__.py后Django无法生成迁移、导入报错如何解决
Django 问题修复步骤
1. 解决迁移文件无法生成的问题
- 首先确认目标应用已在
settings.py的INSTALLED_APPS列表中正确注册 - 进入该应用的
migrations目录,手动新建空的__init__.py文件(如果文件不存在的话),Django需要这个文件识别迁移目录 - 执行带应用名的迁移生成命令:
python manage.py makemigrations 你的应用名,指定应用名可以避免Django跳过识别为无变更的应用 - 如果依然提示无变更,手动删除数据库中
django_migrations表里对应你应用的所有记录,执行SQL:DELETE FROM django_migrations WHERE app='你的应用名'; - 重新执行上述
makemigrations命令生成迁移文件后,运行python manage.py migrate完成数据库初始化
2. 解决urls.py导入标红的问题
- 先确认导入路径的写法符合规范:假设应用名为
calc,正确写法为from calc.views import 你的视图名,不要使用不符合项目结构的相对路径 - 把项目根目录设置为IDE的源根目录,以PyCharm为例:右键点击项目根文件夹 → 选择「Mark Directory as」→ 「Sources Root」
- 清除IDE缓存并重启,以PyCharm为例:点击File → Invalidate Caches,勾选清除文件系统缓存后重启,大部分索引错误导致的标红都会消失
- 如果重启后依然标红但项目启动正常、路由可访问,属于IDE索引延迟问题,不影响实际运行无需额外处理
不需要重建应用,上述操作即可覆盖所有你遇到的问题场景。
内容的提问来源于stack exchange,提问作者Justin
相关产品推荐
相关产品推荐

