From 24254b65e094ba28bef7976d0cb00c372d310f6a Mon Sep 17 00:00:00 2001 From: Nikola Kubeczkova Date: Fri, 20 Jun 2025 13:08:54 +0200 Subject: [PATCH] optimalization --- services/backend/tko/serializers.py | 3 ++- services/backend/tko/views.py | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/services/backend/tko/serializers.py b/services/backend/tko/serializers.py index b551ad8..2d83536 100644 --- a/services/backend/tko/serializers.py +++ b/services/backend/tko/serializers.py @@ -36,7 +36,8 @@ class ArticleListSerializer(serializers.ModelSerializer): return obj.date.strftime("%-d. %-m. %Y") def get_image(self, obj): - main_image = obj.images.order_by("main").first() + main_image = next(iter(obj.images.all()), None) + if main_image: return ArticleImageSerializer(main_image, context=self.context).data return { diff --git a/services/backend/tko/views.py b/services/backend/tko/views.py index 5b7a8bc..9a84811 100644 --- a/services/backend/tko/views.py +++ b/services/backend/tko/views.py @@ -1,5 +1,5 @@ from django.utils import timezone -from django.db.models import Q +from django.db.models import Q, Prefetch from post_office import mail @@ -46,7 +46,9 @@ class AllArticleListView(ListAPIView): def get_queryset(self): return Article.objects.filter( Q(active_to__gte=timezone.now()) | Q(active_to__isnull=True) - ).order_by('-date') + ).order_by('-date').prefetch_related( + Prefetch('images', queryset=ArticleImage.objects.order_by('-main')) + ) class GalleryView(ListAPIView):