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)