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

drf 查询

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 #这个就是上面截图定义的查询规则

 

 

 

相关文章:

  • 2021-07-07
  • 2022-12-23
  • 2021-10-28
  • 2022-12-23
  • 2022-12-23
  • 2021-12-04
  • 2022-12-23
猜你喜欢
  • 2022-01-13
  • 2021-11-20
  • 2022-02-28
  • 2021-06-24
  • 2021-06-03
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案