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

posted @ 2021-12-11 17:57  Jessie橙子  阅读(180)  评论(0编辑  收藏  举报
Live2D