DoesNotExist - 匹配的查询不存在

DoesNotExist - matching query does not exist

我有这个基于 django class 的视图,我试图在其中覆盖 get_queryset 函数,因为我想从前端获取插入的值,以便在主题之后在我的数据库中搜索该名称,然后获取 id。但是当我调用视图时,它给了我一个“主题匹配查询不存在”。因为 subject_val 是 None。这是有道理的,因为用户尚未提交值 jet.. 那么我如何让它等到用户选择“提交

class AttendanceList(LoginRequiredMixin, ListView):
    model = AttendanceLog
    template_name = "./attendancecode/showattendance.html"


    def get_queryset(self):
       class_val = self.request.GET.get('class')
       subject_val = self.request.GET.get('subject')
       sub = Subject.objects.get(name=subject_val).id
       new_context = get_statstic(class_val, sub)
       return new_context

    def get_context_data(self, **kwargs):
        context = super(AttendanceList, self).get_context_data(**kwargs)
        context['class'] = self.request.GET.get('class')
        context['subject'] = self.request.GET.get('subject')
        return context

您可以检查这些值是否不是 None,如果是,您需要 return 另一个 AttendanceLog 的查询集(例如 AttendanceLog.objects.all()AttendanceLog.objects.none()):

class AttendanceList(LoginRequiredMixin, ListView):
    model = AttendanceLog
    template_name = "./attendancecode/showattendance.html"

    def get_queryset(self):
       class_val = self.request.GET.get('class')
       subject_val = self.request.GET.get('subject')
       <strong>if class_val is not None and subject_val is not None</strong>:
           sub = Subject.objects.get(name=subject_val).id
           return get_statstic(class_val, sub)
       # return another queryset:
       return AttendanceLog.objects.none()

    # …