Rest Framework - 过滤
2017-11-20 本文已影响70人
廖马儿
原始的过滤
from rest_framework import viewsets
class GoodsListViewSet(mixins.ListModelMixin, viewsets.GenericViewSet):
#queryset = Goods.objects.all()
serializer_class = GoodsSerializer
def get_queryset(self): # 允许我们对取queryset做一定的逻辑 (有了这个,上面的queryset就可以不需要)
return Goods.objects.filter(price__gt=100) # 大于100的价格
![](https://img.haomeiwen.com/i1197462/d0e660b91f4f503c.png)
DRF提供的filter,有很多种:
DjangoFilterBackend # 使我们传统的filter
SearchFilter
OrderingFilter
DjangoFilterBackend需要我们安装django-filter
![](https://img.haomeiwen.com/i1197462/a77e5c5bddec0db4.png)
![](https://img.haomeiwen.com/i1197462/52527654fc3c9581.png)
目前是精确搜索。
如果想要做模糊搜索,我们去django-filter的官网去查看。
可以自定义filter来实现。
![](https://img.haomeiwen.com/i1197462/00697452e56f15c9.png)