Как упорядочить по полям сериализатора в django?
Здесь я упорядочиваю данные списка ответов на основе полученного значения из SerializerMethodField, но при таком подходе мой api отвечает очень медленно, около 14-15 секунд, но без использования этой сортировки и с использованием только queryset время ответа составляет около 12-1300 мс, поэтому как я могу оптимизировать этот код?
 Я думаю, что использование queryset.order_by будет быстрее, чем сортировка из списка, но Как я могу использовать order_by здесь, поскольку мне нужно упорядочить по значению поля serializermethodfield.
Есть ли какие-либо другие способы оптимизации производительности здесь?
# serializer
class MySerializer(serializers.ModelSerializer):  
    duration = serializers.SerializerMethodField()
    def get_duration(self, obj):   
        dt1 = obj.files.filter(type="1").first().approved_on
        dt2 = timezone.now() 
        days = (dt2-dt1).days
        return days
# views
@api_view("GET"):
def get_list_of_items(self, request): 
   limit = int(request.GET.get('limit', 30))
   offset = int(request.GET.get('off', 0))
   max = limit + offset
   qs = MyModel.objects.filter(user=request.user, status="DONE").prefetch_related("files")
   serializer = MySerializer(qs, many=True)
   sorted_ls = sorted(serializer.data, key=lambda k: k['duration'])[offset:max]
   return Response{'data':sorted_ls}
                
вы можете проверить это и применить в своей программе.
players = SerializerMethodField(method_name=players_related_to_team)
def get_players_related_to_team(self, instance): players = instance.players.order_by('title') return PlayerSerializer(players, many=True).data