zoukankan      html  css  js  c++  java
  • django中过滤 搜索 排序

    django中过滤 搜索 排序

    过滤

    -对于列表数据可能需要根据字段进行过滤,我们可以通过添加django-fitlter扩展来增强支持。
    pip install django-filter

    -在配置文件中增加过滤后端的设置:
    INSTALLED_APPS = [
    ...
    'django_filters', # 需要注册应用,
    ]
    -全局设置

    REST_FRAMEWORK = {
        ...
        'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.DjangoFilterBackend',)
    }```
    
    -在视图中添加filter_fields属性,指定可以过滤的字段
    from django_filters.rest_framework import DjangoFilterBackend
    class BookListView(ListAPIView):
        queryset = BookInfo.objects.all()
        serializer_class = BookInfoSerializer
        -局部设置
        filter_backends = [DjangoFilterBackend]
        # 接口:/api/cars/?price=900000&brand=1
        filter_fields = ('brand', 'price') #过滤的字段
    
    
    ## 搜索  
    
    ```python
    from rest_framework.filters import SearchFilter
    
     # 筛选
     filter_backends = [DjangoFilterBackend, SearchFilter]
     # 接口:/api/cars/?search=9 代表9在name或price两个字段进行模糊查询
     search_fields = ('name', 'price')
    

    排序

    from rest_framework.filters import OrderingFilter
    
    # 排序
    # 接口:/api/cars/?ordering=-id | /api/cars/?ordering=-price
    filter_backends = [DjangoFilterBackend, SearchFilter, OrderingFilter]
    ordering_fields = ('id', 'price')
    
  • 相关阅读:
    应用实例-最大子列和问题
    什么是算法
    什么是数据结构
    数据结构与算法-Python/C(目录)
    collections模块
    色彩缤纷的Python(改变字体颜色及样式)
    取数组中一段值的算法(转)
    开发者必备,超实用的PHP代码片段(转)
    php中数组自定义排序
    rand值出现负数的解决方案
  • 原文地址:https://www.cnblogs.com/zhouze/p/11384953.html
Copyright © 2011-2022 走看看