Django使用CreateView报错ImproperlyConfigured缺少QuerySet怎么解决?
Django访问考勤新增路径报错解决方法
错误根因
你遇到的ImproperlyConfigured错误由两个核心问题导致:
- Django通用
CreateView视图必须绑定对应数据模型,你的AddAttendance视图未指定model/queryset属性,也未重写get_queryset()方法,不符合通用视图的运行要求 - 视图中指定表单类的属性名写错:
CreateView的表单类属性为form_class,不是你写的form_model - 额外注意:视图继承顺序需要把
LoginRequiredMixin放在通用视图前面,否则权限校验逻辑不会生效
修正代码
修改你的视图类代码即可解决问题:
# 记得先导入你定义的StudentAttendance模型 from .models import StudentAttendance class AddAttendance(LoginRequiredMixin, generic.CreateView): # 绑定要操作的模型 model = StudentAttendance # 修正表单属性名 form_class = forms.AttendanceForm success_url = reverse_lazy('home') template_name = 'attendance/attendance.html'
额外检查项
- 确认你的
AttendanceForm表单类的Meta配置中已经指定model = StudentAttendance,否则表单无法正常关联数据表 - 你提到的访问路径
/attendanceattendance/add疑似拼写错误,当前你的attendance应用下的路由规则为^attendance/add,加上Django根路由里对应的应用前缀,正确访问路径应为/[你配置的根路由attendance前缀]/attendance/add,避免路径拼写错误导致404
内容的提问来源于stack exchange,提问作者Saurav
相关产品推荐
相关产品推荐

