Currently I have started learning django rest framework and I came accross below kind of code for getting serializer object.
1)serializer = self.get_serializer(queryset, many=True)
2)serializer = MyDataTypeSerializer(queryset, many=True)
By using above two method I am able to get almost same kind of output so I have tried to find difference between those but not able to find any.
I have used above method likewise in my viewset.
class MyDataTypeViewSet(mixins.ListModelMixin, viewsets.GenericViewSet):
serializer_class = MyDataTypeSerializer
permission_classes = [IsAuthenticated]
queryset = MyDataType.objects.all()
def get_queryset(self):
return self.queryset.filter(user_id=self.request.user.id).order_by('-created_at')
def list(self, request, *args, **kwargs):
queryset = self.get_queryset()
page = self.paginate_queryset(queryset)
if page is not None:
serializer = self.get_serializer(page, many=True)
serializer = self.get_paginated_response(serializer.data)
return return_success(serializer.data)
serializer = self.get_serializer(queryset, many=True)
#serializer = MyDataTypeSerializer(queryset, many=True)
return return_success(serializer.data)
Please if anyone knows let me know difference between these two methods and how to decide which method to use in which condition.
Thanks,