首先下载django-filter : pip install django-filter
然后在views.py 文件中导入
from django_filters.rest_framework import DjangoFilterBackend # 过滤
class GoodsListDetailViewSet(viewsets.ReadOnlyModelViewSet):
"""商品列表页, 详细页"""
queryset = Goods.objects.all()
serializer_class = GoodsSerializer
pagination_class = GoodsPagination
filter_backends = (DjangoFilterBackend,)
filter_fields = ('goods_sn', 'name')
也可以在全局settings文件中配置
REST_FRAMEWORK = {
'PAGE_SIZE': 10,
'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.DjangoFilterBackend',) #全局默认配置过滤
}
效果:
当然如果全局配置了,就可以不用在导入进视图函数,只需要添加 filter_fields 就行。