context를 serializer로 넘기기

hyuckhoon.ko·2022년 6월 3일
0

1. get_serializer_context

class TestViewSet(viewsets.ReadOnlyModelViewSet):
    serializer_class = TestSerializer
    permission_classes = [IsUserPermission]
    pagination_class = None

    def get_queryset(self):
        
       ...(중략)...
       
        return queryset

    def get_serializer_context(self):
        context = super().get_serializer_context()
        context.update(
            {
                key: value,
            }
        )
        return context

2. get_serializer

class TestViewSet(viewsets.ModelViewSet):
    queryset = Test.objects.all()
    serializer_class = TestSerializer
    permission_classes = [IsUserPermission]

    def create(self, request, *args, **kwargs):
    
        (중략)
        
        context = {
            'request': request,
        }
        serializer = self.get_serializer(data=request.data, context=context)
        serializer.is_valid(raise_exception=True)
        return Response(serializer.data, status=status.HTTP_201_CREATED)

0개의 댓글