serializer for image full path

This commit is contained in:
rizwanisready
2024-02-29 22:00:21 +05:30
parent af405b6b40
commit f2d8a66293
3 changed files with 28 additions and 6 deletions

View File

@@ -15,6 +15,12 @@ class EventImageSerializer(serializers.ModelSerializer):
model = EventImage
fields = ["image"]
def get_image(self, obj):
request = self.context.get("request")
if obj.image and hasattr(obj.image, "url"):
return request.build_absolute_uri(obj.image.url)
return None
class EventDetailSerializer(serializers.ModelSerializer):
images = serializers.SerializerMethodField()

View File

@@ -23,7 +23,13 @@ from manage_events.api.serializers import (
PrincipalPreferenceSerializer,
VenueSerializer,
)
from manage_events.models import EventMaster, Event, EventCategory, PrincipalPreference, Venue
from manage_events.models import (
EventMaster,
Event,
EventCategory,
PrincipalPreference,
Venue,
)
import requests
@@ -90,7 +96,9 @@ class EventsAPIView(APIView):
current_and_future_events = Event.objects.filter(
current_and_future_events_query
).order_by("-entry_fee")
serializer = EventDetailSerializer(current_and_future_events, many=True)
serializer = EventDetailSerializer(
current_and_future_events, context={"request": request}, many=True
)
return ApiResponse.success(
status=status.HTTP_200_OK,
message=constants.SUCCESS,
@@ -105,7 +113,9 @@ class EventsAPIView(APIView):
current_and_future_events = Event.objects.filter(
current_and_future_events_query
).order_by("entry_fee")
serializer = EventDetailSerializer(current_and_future_events, many=True)
serializer = EventDetailSerializer(
current_and_future_events, context={"request": request}, many=True
)
return ApiResponse.success(
status=status.HTTP_200_OK,
message=constants.SUCCESS,
@@ -120,7 +130,9 @@ class EventsAPIView(APIView):
preference_events = Event.objects.filter(
category__in=preferred_categories_ids, end_date__gte=today
).distinct()
serializer = EventDetailSerializer(preference_events, many=True)
serializer = EventDetailSerializer(
preference_events, context={"request": request}, many=True
)
return ApiResponse.success(
status=status.HTTP_200_OK,
message=constants.SUCCESS,
@@ -177,7 +189,7 @@ class EventDetailAPIView(APIView):
interactions = interaction.calculate()
# Serialize your event data here
event_data = EventDetailSerializer(event).data
event_data = EventDetailSerializer(event, context={"request": request}).data
event_data["interactions"] = interactions
return ApiResponse.success(
@@ -300,7 +312,9 @@ class IAmPrincipalLocationAPIView(APIView):
# Assuming there's a UserLocation model that stores user locations,
# and it has a ForeignKey to the user model.
try:
user_location = IAmPrincipalLocation.objects.filter(principal=request.user).last()
user_location = IAmPrincipalLocation.objects.filter(
principal=request.user
).last()
serializer = IAmPrincipalLocationSerializer(user_location)
return ApiResponse.success(
status=status.HTTP_200_OK,

View File

@@ -26,6 +26,7 @@ class EventForm(forms.ModelForm):
"end_date",
"from_time",
"to_time",
"category",
"venue",
"venue_capacity",
"video_url",
@@ -63,6 +64,7 @@ class EventForm(forms.ModelForm):
# You can customize it further if needed:
"event_master": forms.Select(attrs={"class": "form-control"}),
"venue": forms.Select(attrs={"class": "form-control"}),
"category": forms.Select(attrs={"class": "form-control"}),
}