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 для ручной сортировки.
любая помощь будет оценена по достоинству