标签:order 等于 paginati price 默认 install field 必须 generic
一、添加到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
标签:order 等于 paginati price 默认 install field 必须 generic
原文地址:https://www.cnblogs.com/mxsf/p/10661938.html