如何在DjangoREST中使用自定义函数实现排序?
我目前正在使用DjangoREST作为服务器。 我想做的是根据自定义函数对查询集进行排序 例如,模型可以如下所示:如何在DjangoREST中使用自定义函数实现排序?,django,django-models,django-rest-framework,Django,Django Models,Django Rest Framework,我目前正在使用DjangoREST作为服务器。 我想做的是根据自定义函数对查询集进行排序 例如,模型可以如下所示: class Product(models.Model): latitude = models.FloatField() longitude = models.FloatField() 详细地说,我想发送一个带有我当前地质坐标的请求,并且我希望根据产品和我之间的距离对响应进行排序 如果相关的话,我正在使用ModelSerializers和mixins 计算非常繁琐,
class Product(models.Model):
latitude = models.FloatField()
longitude = models.FloatField()
详细地说,我想发送一个带有我当前地质坐标的请求,并且我希望根据产品和我之间的距离对响应进行排序
如果相关的话,我正在使用ModelSerializers
和mixins
计算非常繁琐,这意味着它不能由SQL语句完成,因此在这种情况下,annotate
不是很有用。如果我使用:
queryset = Product.objects.all()
result = sort(queryset,lambda a: Somefunction(a))
result
是一个不再是查询集的列表,因此我无法重写DjangoRESTfilter
类的filter\u queryset
或相关方法,因为它们希望返回查询集
如何使用DjangoREST完成这个看似简单的任务?为什么不将列表转换为json并将其作为响应发送?您是否使用了
GeoDjango
?看看这个:@themanatuf非常感谢你的链接!按什么排序?如果您想按任何自定义函数进行排序,那么实际的索引取决于您想要排序的是什么?为什么不将列表转换为json并将其作为响应发送?是否使用GeoDjango
?看看这个:@themanatuf非常感谢你的链接!按什么排序?如果您想按任何自定义函数排序,那么索引实际上取决于您想要排序的是什么?