I am currently using DjangoREST for a server. When I want to do is to sort a queryset according to a custom function.
For an illustration a model could be like this:
class Product(models.Model):
latitude = models.FloatField()
longitude = models.FloatField()
In detail, I would like to send a request with my current geological coordinates and I would like the response to be sorted according to the distance between the product and myself.
I am using ModelSerializers
and mixins
if that is relevant.
The calculation is non-trivial which means it could not be accomplished by SQL sentences so annotate
is not very useful in this case. And if I use:
queryset = Product.objects.all()
result = sort(queryset,lambda a: Somefunction(a))
The result
is a list which is no longer a queryset, so I could not override the filter_queryset
or relevant methods of DjangoREST filter
class as they expect a queryset to be returned.
How could I accomplish this seemingly simple task with DjangoREST?