django中过滤搜索排序

mac2022-06-30  29

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') #过滤的字段

搜索

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')

转载于:https://www.cnblogs.com/zhouze/p/11384953.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)