added EventListSerializer for optimizing

This commit is contained in:
rizwanisready
2024-04-29 13:38:31 +05:30
parent 27d91aaa2a
commit a7493b60bc
2 changed files with 23 additions and 7 deletions

View File

@@ -45,6 +45,21 @@ class EventCategorySerializer(serializers.ModelSerializer):
fields = ["id", "title", "image", "description", "video_url"]
class EventListSerializer(serializers.ModelSerializer):
class Meta:
model = Event
fields = [
"id",
"title",
"description",
"start_date",
"end_date",
"entry_fee",
"category",
"image",
]
class EventDetailSerializer(serializers.ModelSerializer):
tags = TagSerializer(many=True, read_only=True)
images = serializers.SerializerMethodField()

View File

@@ -25,6 +25,7 @@ from manage_events.api.serializers import (
IAmPrincipalLocationSerializer,
PrincipalPreferenceSerializer,
VenueSerializer,
EventListSerializer
)
from manage_events.models import (
EventInteractionType,
@@ -186,7 +187,7 @@ class EventsAPIView(APIView):
events = services.EventFilterService.filter_events(
filter_type=filter, principal=request.user
)
serializer = EventDetailSerializer(
serializer = EventListSerializer(
events, context={"request": request}, many=True
)
return ApiResponse.success(
@@ -236,7 +237,7 @@ class MyEventsAPIView(APIView):
errors="Invalid filter parameter",
)
serializer = EventDetailSerializer(
serializer = EventListSerializer(
events, context={"request": request}, many=True
)
return ApiResponse.success(
@@ -265,7 +266,7 @@ class PrinciaplPreferenceEventsAPIView(APIView):
if not events.exists():
# If no events found based on preferences, get future events
events = Event.objects.filter(start_date__gt=today)
serializer = EventDetailSerializer(events, many=True)
serializer = EventListSerializer(events, many=True)
return ApiResponse.success(
status=status.HTTP_200_OK,
message=constants.SUCCESS,
@@ -641,7 +642,7 @@ class EventFilterByLocationAPIView(APIView):
events = Event.objects.filter(venue__id__in=venues_within_range)
# Serialize and return the filtered events
serializer = EventDetailSerializer(
serializer = EventListSerializer(
events, context={"request": request}, many=True
)
return ApiResponse.success(
@@ -666,7 +667,7 @@ class FavoriteEventsList(APIView):
active=True,
draft=False,
)
serializer = EventDetailSerializer(
serializer = EventListSerializer(
events, context={"request": request}, many=True
)
return ApiResponse.success(
@@ -707,7 +708,7 @@ class EventDateRangeAPIView(APIView):
& Q(draft=False)
)
serializer = EventDetailSerializer(
serializer = EventListSerializer(
events, context={"request": request}, many=True
)
return ApiResponse.success(
@@ -806,7 +807,7 @@ class PrincipalEventsInteractionView(APIView):
events
) # To ensure that the queryset is evaluated and we don't send a QuerySet object in the serializer context
serializer = EventDetailSerializer(
serializer = EventListSerializer(
events, context={"request": request}, many=True
)
return ApiResponse.success(