Luffy123
Luffy123

Reputation: 47

Ordering in serializer custom field

My variable inside a serializer MySerializer.

du = serializers.SerializerMethodField()

def get_du(self, obj):

   modelname = Somemodel.objects.filter('id=id')
   du = sum(modelname.values_list('t', flat=True))
   return du

I want to return response in descending order as per value of du. My View:

    def get(self, request):
        queryset = Anothermodel.objects.all()
        serializer = MySerializer(queryset, many=True)
        return Response({"organization": serializer.data}, status=status.HTTP_200_OK)

Upvotes: 0

Views: 1086

Answers (2)

Luffy123
Luffy123

Reputation: 47

Managed to solve it with help How to sort values of serializer custom field in DRF

serializer_data = sorted(serializer.data, key=lambda k: k['du'], reverse=True)
        return Response({"info": serializer_data}, status=status.HTTP_200_OK)

Upvotes: 1

DanielHefti
DanielHefti

Reputation: 344

Have you tried to use .order_by()? Something like:

AnotherModel.objects.all().order_by('-du')

https://docs.djangoproject.com/en/3.0/ref/models/querysets/

Upvotes: 0

Related Questions