美文网首页
29、DRF_自定义模糊查询/过滤器

29、DRF_自定义模糊查询/过滤器

作者: 猪儿打滚 | 来源:发表于2020-07-25 09:54 被阅读0次
    • 1、添加django-fitlter扩展:
      pip install django-filter
    • 2、 settings.py中添加应用:
    INSTALLED_APPS = [
        'django_filters',
    ]
    
    • 3、settings文件中增加配置:
    REST_FRAMEWORK = {
        # drf过滤器
        'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.DjangoFilterBackend',)
    }
    
    • 4、自定义过滤器(本例子是在serializers.py中)
    import django_filters
    from django_filters.rest_framework import FilterSet
    
    from interfaces.models import Interfaces
    
    class NameLikeFilter(FilterSet):
        """根据name字段的过滤器"""
        name = django_filters.CharFilter(field_name='name', lookup_expr="icontains")  # icontains 包含,忽略大小写
    
        class Meta:
            model = Interfaces  # 关联的模型
            fields = ['name']  # 过滤的字段
    
    • 5、在view.py中设置过滤类和过滤字段
        # 自定义name过滤器
        filterset_class = NameLikeFilter 
    
        # 设置过滤字段  (查询字段)
        filter_fields = ['name']
        # filterset_fields = ['name']
    
    • 6、效果


      搜索UI的结果

    相关文章

      网友评论

          本文标题:29、DRF_自定义模糊查询/过滤器

          本文链接:https://www.haomeiwen.com/subject/ccipcktx.html