from rest_framework.filters import SearchFilter
python
from rest_framework.viewsets import ModelViewSet from rest_framework.filters import SearchFilter class CarModelViewSet(ModelViewSet): queryset = ..... serializer_class = ..... search_fields = ['字段一名称','字段二名称'] #能够用()包裹,写前面的优先级大于后面 filter_backends = [SearchFilter,]
其中search_fields前面
添加各类字符来限制搜索行为mysql
^
以指定内容开头=
彻底匹配@
全文搜索(目前只支持django数据存放在mysql)$
正则匹配from django_filters.rest_framework import FilterSet from django_filters import filters from . import models class CarFilterSet(FilterSet): min_price = filters.NumberFilter(field_name='类里面的字段名称', lookup_expr='gte') #gte为大于等于 max_price = filters.NumberFilter(field_name='类里面的字段名称', lookup_expr='lte')#lte为小于等于 class Meta: model = 字段所在的类名 # brand仍是实现分类 # min_price,max_price能够定义区间 fields = ['brand', 'min_price', 'max_price'] #上面的min_price以及max_price为咱们提交数据的key
from rest_framework.viewsets import ModelViewSet from django_filters.rest_framework import DjangoFilterBackend class CarModelViewSet(ModelViewSet): queryset = ..... serializer_class = ..... filter_class = CarFilterSet #咱们自定义的对象,前提要将其导入到咱们程序所在的窗口 filter_backends =[DjangoFilterBackend,]
from rest_framework.viewsets import ModelViewSet from rest_framework.filters import OrderingFilter class CarModelViewSet(ModelViewSet): queryset = ..... serializer_class = ..... ordering_fields = ['字段一名称','字段二名称'] #能够用()包裹,写前面的优先级大于后面 filter_backends =[DjangoFilterBackend,]