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

Django报ModuleNotFoundError:No module named 'models'如何解决

报错根因

ModuleNotFoundError: No module named 'models' 是admin.py中的导入路径写法错误,和模型命名、文件夹命名冲突无关。
Django app内的模块导入不能直接写from models import xxx,这种写法会让Python在项目根路径全局搜索models模块,而你的models.py是存放在对应app的目录下,自然无法被匹配到。

修复方法
  • 修改admin.py内的模型导入语句,两种合法写法任选其一即可:
    1. 同目录相对导入(推荐,无需硬编码app名称)
    from django.contrib import admin
    from .models import Job
    
    admin.site.register(Job)
    
    1. 绝对路径导入,将代码中your_app_name替换为你存放models.py、admin.py的那个应用文件夹的实际名称
    from django.contrib import admin
    from your_app_name.models import Job
    
    admin.site.register(Job)
    
  • 修复导入后注意排查models.py的潜在报错:当前Job模型中引用的TYPE_CHOICES、EXP_CHOICES、FULL_TIME、TIER1四个常量未在代码中定义,后续执行数据库迁移时会触发NameError,需要在Job类定义前补充这部分常量配置,参考示例:
# 补充在Job类定义之前
TYPE_CHOICES = [
    ("full_time", "全职"),
    ("part_time", "兼职"),
    ("intern", "实习")
]
FULL_TIME = "full_time"

EXP_CHOICES = [
    ("fresh", "应届生"),
    ("junior", "1-3年经验"),
    ("mid", "3-5年经验")
]
TIER1 = "fresh"
  • 确认对应应用已经添加到项目settings.py的INSTALLED_APPS配置列表中,修改完成后依次执行python manage.py makemigrations、python manage.py migrate完成模型同步即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 20:18:30