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

浙公网安备 33010602011771号