From 8696bf5d9467eeb2bde3bab7f95902a2dc50ad45 Mon Sep 17 00:00:00 2001 From: Arona Jones Date: Wed, 22 Dec 2021 10:43:36 +0000 Subject: [PATCH] SQL query optimisation --- training/templates/trainee_list.html | 1 + training/views.py | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/training/templates/trainee_list.html b/training/templates/trainee_list.html index 147d3a8d..b753921f 100644 --- a/training/templates/trainee_list.html +++ b/training/templates/trainee_list.html @@ -42,4 +42,5 @@ +{% paginator %} {% endblock %} diff --git a/training/views.py b/training/views.py index 7cdc61c8..95f089a6 100644 --- a/training/views.py +++ b/training/views.py @@ -26,6 +26,9 @@ class TraineeDetail(views.ProfileDetail): template_name = "trainee_detail.html" model = models.Trainee + def get_queryset(self): + return self.model.objects.prefetch_related('qualifications_obtained') + def get_context_data(self, **kwargs): context = super(TraineeDetail, self).get_context_data(**kwargs) if self.request.user.pk == self.object.pk: @@ -69,7 +72,6 @@ class LevelDetail(generic.DetailView): class LevelList(generic.ListView): model = models.TrainingLevel template_name = "level_list.html" - ordering = ['qualifications_obtained'] def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) @@ -81,6 +83,11 @@ class LevelList(generic.ListView): class TraineeList(generic.ListView): model = models.Trainee template_name = 'trainee_list.html' + paginate_by = 25 + ordering = ['qualifications_obtained'] + + def get_queryset(self): + return self.model.objects.prefetch_related('levels', 'qualifications_obtained') def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs)