django filters

# 引入
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)