如何在DRF中按价格筛选产品



我有一个模型类Products,在其中我简单地指定产品URL、产品标题和产品价格作为属性。并使Serializer.py文件使用ModelSerializer并将数据传递给Reactjs现在我不明白如何根据价格筛选产品,所以如果我在react中获取API,则根据用户需求或我们的选择,所有的高价格都先排序或后排序。。。感谢

有多种方法可以做到这一点:

1.使用DRF过滤器后端:

DRF过滤文档-订购

根据官方的DRF文档,您需要在设置或视图中指定您的过滤器后端,如下所示:

from rest_framework import filters
class ProductListView(generics.ListAPIView):
queryset = User.objects.all()
serializer_class = ProductSerializer
filter_backends = [filters.OrderingFilter]
ordering_fields = ['price']

您将能够使用请求参数过滤您的列表:

http://example.com/api/products?ordering=price

或通过以下方式反向订购:

http://example.com/api/products?ordering=-price

2.在查询集中对排序进行硬编码

class ProductListView(generics.ListAPIView):
queryset = User.objects.all().order_by('-score')
serializer_class = ProductSerializer

基本上,你不想硬编码你的排序,除非你总是确定你希望结果是这样排序的。否则,过滤器后端就是最好的选择。

相关内容

  • 没有找到相关文章

最新更新