按TryHackMe教程Django migrate报ModuleNotFoundError缺Articles.urls
报错核心原因
报错栈最终触发的错误为ModuleNotFoundError: No module named 'Articles.urls'。
在mysite/urls.py中配置了path('Articles/', include('Articles.urls'))路由规则,要求Django加载Articles应用目录下的子路由配置文件,但从当前项目目录结构可以确认,Articles应用目录下不存在该文件。
注意: 即便执行的是与路由无直接关联的migrate数据库迁移命令,Django在启动所有管理命令前都会执行全项目配置合法性校验,路由配置的缺失会直接触发校验拦截,导致命令中断。
修复操作流程
- 进入Articles应用目录(与
models.py、views.py处于同一层级) - 新建名为
urls.py的文件 - 给新文件写入基础路由框架代码,避免空文件触发其他异常:
from django.urls import path # 后续可在此处定义Articles应用专属的路由规则 urlpatterns = []
- 重新执行
python3 manage.py migrate,即可正常完成数据库迁移流程
常见避坑点
- 不要将新建的
urls.py错放在外层mysite项目目录下,模块路径不匹配依然会触发导入错误 - 只要
include()传入的模块路径不存在,都会在Django启动、执行管理命令时触发同类导入报错
内容的提问来源于stack exchange,提问作者user1424739
相关产品推荐
相关产品推荐

