DRF的过滤
Posted mxsf
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DRF的过滤相关的知识,希望对你有一定的参考价值。
一、添加到app里面
INSTALLED_APPS = [ ‘django_filters‘, ]
二、新建filter.py
# goods/filters.py import django_filters from .models import Goods class GoodsFilter(django_filters.rest_framework.FilterSet): ‘‘‘ 商品过滤的类 ‘‘‘ #两个参数,name是要过滤的字段,lookup是执行的行为,‘小与等于本店价格’ price_min = django_filters.NumberFilter(name="shop_price", lookup_expr=‘gte‘) price_max = django_filters.NumberFilter(name="shop_price", lookup_expr=‘lte‘) class Meta: model = Goods fields = [‘price_min‘, ‘price_max‘]
三、views.py
from .filters import GoodsFilter from django_filters.rest_framework import DjangoFilterBackend class GoodsListViewSet(mixins.ListModelMixin,viewsets.GenericViewSet): ‘商品列表页‘ #这里必须要定义一个默认的排序,否则会报错 queryset = Goods.objects.all().order_by(‘id‘) # 分页 pagination_class = GoodsPagination serializer_class = GoodsSerializer filter_backends = (DjangoFilterBackend,) # 设置filter的类为我们自定义的类 filter_class = GoodsFilter
以上是关于DRF的过滤的主要内容,如果未能解决你的问题,请参考以下文章