【问题标题】:DoesNotExist - matching query does not existDoesNotExist - 匹配的查询不存在
【发布时间】:2022-01-10 01:32:15
【问题描述】:

我有这个基于 django 类的视图,我试图覆盖 get_queryset 函数,因为我想从前端获取插入的值,以便在具有该名称的主题之后在我的数据库中搜索,然后获取 id。但是当我调用视图时,它给了我一个“主题匹配查询不存在”。因为 subject_val 是无。这是有道理的,因为用户尚未提交值 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

【问题讨论】:

    标签: django django-queryset django-class-based-views


    【解决方案1】:

    您可以检查这些值是否不是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()
    
        # …

    【讨论】:

    猜你喜欢
    • 2013-07-27
    • 1970-01-01
    • 2014-09-22
    • 1970-01-01
    • 1970-01-01
    • 2022-01-08
    • 2015-12-29
    • 2021-01-25
    • 2021-02-14
    相关资源
    最近更新 更多