From 203219d9f18d6745bda95e3bb226e6470250f464 Mon Sep 17 00:00:00 2001 From: jungmir Date: Sat, 21 Sep 2024 21:22:55 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=ED=9B=84=EC=9B=90=EA=B8=88=20=EB=AF=B8?= =?UTF-8?q?=EC=9E=85=EA=B8=88=20=EC=83=81=ED=83=9C=EC=9D=B8=20=ED=9B=84?= =?UTF-8?q?=EC=9B=90=EC=82=AC=EB=8A=94=20=ED=91=9C=EC=8B=9C=EB=90=98?= =?UTF-8?q?=EC=A7=80=20=EC=95=8A=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sponsor/viewsets.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/sponsor/viewsets.py b/sponsor/viewsets.py index b272b4b..cb8d277 100644 --- a/sponsor/viewsets.py +++ b/sponsor/viewsets.py @@ -2,6 +2,7 @@ from django.db.transaction import atomic +from django.db.models import Prefetch from django.shortcuts import get_object_or_404 from django.db.utils import IntegrityError from rest_framework import mixins, status, viewsets @@ -53,9 +54,12 @@ def get_serializer_class(self): @action(detail=False, methods=["GET"], url_path="with-sponsor") def list_with_levels(self, request, version): - serializer = self.get_serializer( - self.get_queryset().filter(sponsor__paid_at__isnull=False), many=True + queryset = self.get_queryset().prefetch_related( + Prefetch( + "sponsor_set", queryset=Sponsor.objects.filter(paid_at__isnull=False) + ) ) + serializer = self.get_serializer(queryset, many=True) return Response(serializer.data) @action(detail=False, methods=["POST"])