From de317bac23337a082a96dce798791c832b5446a3 Mon Sep 17 00:00:00 2001 From: Ernesto Rico Schmidt <ernesto@helsinki.at> Date: Mon, 28 Oct 2024 14:22:01 -0400 Subject: [PATCH] fix: properly inject the request into the serializer context --- program/views.py | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/program/views.py b/program/views.py index a47f5cb1..831f1b5a 100644 --- a/program/views.py +++ b/program/views.py @@ -577,10 +577,14 @@ class APIUserViewSet( else: return User.objects.filter(pk=user.id) + def get_serializer_context(self): + context = super().get_serializer_context() + context.update({"request": self.request}) + + return context + def create(self, request, *args, **kwargs): serializer = UserSerializer( - # FIXME: the method get_serializer_context should be used but it does seem to get lost - context={"request": request}, # the serializer needs the request in the context data=request.data, ) @@ -710,10 +714,14 @@ class APIShowViewSet(viewsets.ModelViewSet): self.check_object_permissions(self.request, obj) return obj + def get_serializer_context(self): + context = super().get_serializer_context() + context.update({"request": self.request}) + + return context + def create(self, request, *args, **kwargs): serializer = ShowSerializer( - # FIXME: the method get_serializer_context should be used but it does seem to get lost - context={"request": request}, # the serializer needs the request in the context data=request.data, ) @@ -733,8 +741,6 @@ class APIShowViewSet(viewsets.ModelViewSet): partial = kwargs.get("partial", False) show = self.get_object() serializer = ShowSerializer( - # FIXME: the method get_serializer_context should be used but it does seem to get lost - context={"request": request}, # the serializer needs the request in the context data=request.data, instance=show, partial=partial, @@ -1329,6 +1335,12 @@ class APITimeSlotViewSet( queryset = TimeSlot.objects.all().order_by("-start") serializer_class = TimeSlotSerializer + def get_serializer_context(self): + context = super().get_serializer_context() + context.update({"request": self.request}) + + return context + def update(self, request, *args, **kwargs): show_pk = get_values(self.kwargs, "show_pk") timeslot = self.get_object() @@ -1482,10 +1494,14 @@ class APIProfileViewSet(ActiveFilterMixin, viewsets.ModelViewSet): filter_backends = [drf_filters.SearchFilter] search_fields = ["name", "email"] + def get_serializer_context(self): + context = super().get_serializer_context() + context.update({"request": self.request}) + + return context + def create(self, request, *args, **kwargs): serializer = ProfileSerializer( - # FIXME: the method get_serializer_context should be used but it does seem to get lost - context={"request": request}, # the serializer needs the request in the context data=request.data, ) if serializer.is_valid(raise_exception=True): @@ -1497,8 +1513,6 @@ class APIProfileViewSet(ActiveFilterMixin, viewsets.ModelViewSet): profile = self.get_object() serializer = ProfileSerializer( - # FIXME: the method get_serializer_context should be used but it does seem to get lost - context={"request": request}, # the serializer needs the request in the context data=request.data, instance=profile, partial=partial, -- GitLab