FilterSet with filterset_class
创建filters.py文件
from .models import Goods from django_filters import rest_framework as filters class GoodsFilter(filters.FilterSet): """商品的过滤类""" price_min = filters.NumberFilter(field_name='shop_price', lookup_expr='gte') price_max = filters.NumberFilter(field_name='shop_price', lookup_expr='lte') class Meta: model = Goods fields = ['price_min', 'price_max']
view添加配置
from .filters import GoodsFilter #导入新创建的filters class GoodsListViewSet(mixins.ListModelMixin, viewsets.GenericViewSet): """ List all goods. """ queryset = Goods.objects.all() serializer_class = GoodsSerializer fileter_backends = (DjangoFilterBackend) filterset_class = GoodsFilter # 配置好filterset_class即可
效果
参考:https://django-filter.readthedocs.io/en/main/guide/rest_framework.html