# 引入
from django_filters.rest_framework import DjangoFilterBackend
from rest_framework import filters,enerics
# 使用 class 继承generics.ListAPIView
# 例1:
class Test(generics.ListAPIView):
'''
由于内部封装了 get 方法可以不重写 如:
'''
serializer_class = TestSerializers
queryset = Test.objects.all()
# 加入过滤(DjangoFilterBackend:筛选 | SearchFilter:模糊搜索
filter_backends = (DjangoFilterBackend,filters.SearchFilter)
filterset_fields = ['mobile','realname'] # 名称和数据库保存一致即可 精确查找
search_fields = ['email'] #模糊搜索
'''
filterset_fields:搜索条件如:?realname=test
search_fields:搜索条件如:?search=email
'''
# 例2:
'''
由于使用了ListAPIView 也可以重新封装get方法
'''
class Test(generics.ListAPIView):
serializer_class = TestSerializers
queryset = Test.objects.all()
···
def get_queryset(self):
return self.queryset
django filters
最新推荐文章于 2024-08-20 13:54:17 发布