Django Rest Framework Упорядочивание по полю SerializerMethodField с пагинацией

Как я могу сортировать данные на основе вложенного метода пользовательского сериализатора:

вот мой сериализатор:

class MyModelSerizalier(serializers.ModelSerializer):
  monthly_price = serializers.SerializerMethodField()

  class Meta:
    model = MyModel

  def get_monthly_price(self, instance):
    # ... do some calcs with instance
    # and values that is not related with MyModel
   
    installments = [{"due_date": "some_date", "value": 10}]
    total_price = sum([x["value"] for x in installments])
    return {"installments": installments, "total_price": total_price}

на мой взгляд, у меня есть:

class MyModelViewSet(viewsets.ModelViewSet):
  queryset = MyModel.objects.all()
    serializer_class = MyModelSerializer
    http_method_names = ['get']
    filterset_class = MyModelFilterSet
    pagination_class = StandardResultsSetPagination

    # tryed to use same logic for joins but didn't work
    ordering = ('monthly_price__total_price', '-monthly_price__total_price')
    ordering_fields = ('monthly_price__total_price', '-monthly_price__total_price')

    def get_queryset(self):
      return self.queryset

также пробовал это предложение здесь но так как я использую пагинацию, я не смог получить весь response.data для ручной сортировки.

любая помощь будет оценена по достоинству

Вернуться на верх