zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Sql inner join
    转:MySQL 的show processlist
    session cookie
    集群和分布式
    设计模式
    Web性能优化——缓存
    关于 java 里面的路径
    1分钟看懂log4j 配置自己想要的日志信息
    spring @bean 的理解
    如何用iptables实现NAT(转)
  • 原文地址:https://www.cnblogs.com/mxsf/p/10661938.html
Copyright © 2011-2022 走看看