Django导入Category模型报No module named 'models'错误如何解决
错误原因
该报错由admin.py中的导入语句不符合Python/Django的导入规则导致:
你当前写的from models import Category属于隐式相对导入,Python会默认从项目根路径查找名为models的顶级模块,不会主动匹配当前category应用目录下的models.py文件,因此触发模块找不到的报错。
修复方案
任选以下一种方案修改admin.py的第2行导入语句即可:
- 方案1:使用显式相对导入
代码修改为:from .models import Category
开头的.代表从当前文件所在的目录导入目标模块,适配App内部文件互相导入的场景。 - 方案2:使用绝对导入
结合你App配置的name = 'api.category',写全导入路径:from api.category.models import Category
额外优化建议
你当前在settings.py中重复定义了CategoryConfig类,该类正常只需要在apps.py中定义即可,settings.py里只需要在INSTALLED_APPS列表中添加'api.category'即可完成应用注册,重复定义可以删除避免后续出现配置冲突。
内容的提问来源于stack exchange,提问作者Raiz Ahmed
相关产品推荐
相关产品推荐

