1.在utils文件夹中创建filters.py 文件,内容如下
from django_filters.rest_framework.filterset import FilterSet from api import models from django_filters import filters class ModuleFilterSet(FilterSet): moduleName = filters.CharFilter(field_name='moduleName', lookup_expr="icontains") projectName = filters.CharFilter(field_name='project__projectName', lookup_expr="icontains") project = filters.CharFilter(field_name='project', lookup_expr="exact") class Meta: model = models.Module fields = ['moduleName', 'projectName', 'project']
2.在views文件中
from django_filters.rest_framework import DjangoFilterBackend from utils.filters import ModuleFilterSet
class ModuleView(mixins.ListModelMixin, mixins.CreateModelMixin, mixins.RetrieveModelMixin, mixins.UpdateModelMixin, GenericViewSet): queryset = models.Module.objects.filter(is_delete=False) serializer_class = serializers.ModuleSerializer pagination_class = MyPageNumberPagination filter_backends = [DjangoFilterBackend] #重点 filter_class = ModuleFilterSet #这个就是上面截图定义的查询规则