美文网首页
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