DoesNotExist - соответствующий запрос не существует

У меня есть представление на основе класса django, где я пытаюсь переписать функцию get_queryset, потому что я хочу получить вставленные значения из фронтенда, чтобы искать в базе данных предмет с таким именем и затем получить id. но когда я вызываю представление, оно выдает мне "Subject matching query does not exist.", потому что subject_val is None. Это имеет смысл, потому что пользователь не отправил значения струи... так как же мне заставить его ждать, пока пользователь не выберет "submit

"?

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, если да, то необходимо вернуть другой кверисет AttendanceLogs (например 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')
       if class_val is not None and subject_val is not None:
           sub = Subject.objects.get(name=subject_val).id
           return get_statstic(class_val, sub)
       # return another queryset:
       return AttendanceLog.objects.none()

    # …
Вернуться на верх