From 9ec151e040808a4a603c46e5f5d2ec2095fb6b8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20P=C3=A9pin?= Date: Wed, 5 Apr 2017 20:48:18 +0100 Subject: [PATCH] A query optimization in bda.views.catalogue We only need to fetch shows identifiers here: FOO.filter(BAR__in=shows) which can be done using the `values_list` method --- bda/views.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/bda/views.py b/bda/views.py index f7515ed2..8fda604d 100644 --- a/bda/views.py +++ b/bda/views.py @@ -672,15 +672,16 @@ def catalogue(request, request_type): return HttpResponseBadRequest( "Bad format: int expected for `id`" ) + shows = tirage.spectacle_set.values_list("id", flat=True) categories = list( CategorieSpectacle.objects - .filter(spectacle__in=tirage.spectacle_set.all()) + .filter(spectacle__in=shows) .distinct() .values('id', 'name') ) locations = list( Salle.objects - .filter(spectacle__in=tirage.spectacle_set.all()) + .filter(spectacle__in=shows) .distinct() .values('id', 'name') )