Tengo esta vista basada en la clase Django en la que intento sobrescribir la función get_queryset porque quiero acceder a los valores insertados desde la interfaz para buscar en mi base de datos después del tema con ese nombre y luego obtener la identificación. pero cuando llamo a la vista, aparece "La consulta de coincidencia de asunto no existe". porque el subject_val es Ninguno. Eso tiene sentido porque el usuario no ha enviado el jet de valores... Entonces, ¿cómo hago para que espere hasta que un usuario haya elegido "enviar"?
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 contextPuede verificar si los valores no son None ; en caso de que lo sean, debe devolver otro conjunto de consultas de AttendanceLog s (por ejemplo AttendanceLog.objects.all() o 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() # …