Django运行报ModuleNotFoundError: No module named 'crudproject1.enroll'如何解决
问题原因及解决方案
1. 直接报错修复
本次ModuleNotFoundError报错的触发原因是views.py第一行导入路径错误,你已经在第三行使用相对导入from .forms import StudentRegistation正确导入了表单类,第一行的绝对导入写法冗余且路径错误,直接删除该行即可解决当前报错。
2. 配套检查项(避免后续再出现导入错误)
- 确认已在项目根目录的
settings.py文件的INSTALLED_APPS列表中注册了enroll应用:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', # 新增你的应用 'enroll', ]
- 确认
enroll应用目录下存在__init__.py文件(空文件即可,作用是标识该目录为Python可识别的导入包)
3. 其他潜在错误修复
你贴出的代码还有多处语法/逻辑错误,修复完导入问题后会直接触发,建议同步修改:
forms.py修正
导入语句、Meta类属性名错误,修正后代码:
from django import forms from .models import Dhiraj class StudentRegistation(forms.ModelForm): class Meta: model = Dhiraj fields = ['name','email','password']
views.py修正
请求参数传递错误、缩进错误、上下文未传递到模板,修正后代码:
from django.shortcuts import render from .forms import StudentRegistation def add_show(request): if request.method == 'POST': fm = StudentRegistation(request.POST) # 可补充表单验证保存逻辑:if fm.is_valid(): fm.save() else: fm = StudentRegistation() context = {'fm':fm} return render(request,'enroll/addandshow.html', context)
通用注意事项
所有Python代码需要正确缩进,类属性、函数内代码都需要缩进4个空格,否则会直接触发语法错误。
内容的提问来源于stack exchange,提问作者Dhiraj
相关产品推荐
相关产品推荐

