django-filter高级查询教程(1):快速开始

  • 275
  • 2022年6月9日15:53:34

快速开始

Django-filter 是一个通用的、可重用的应用程序,用于减轻编写一些更普通的视图代码。具体来说,它允许用户根据模型的字段过滤查询集,显示表单让他们这样做。
使用Django-filter完成高级过滤-快速开始

1)安装

pip install django-filter
INSTALLED_APPS = [
    ...
    'django_filters',
]

2)使用

创建filter.py文件:

import django_filters
from blog.models import Monitor

# 为Monitor模型配置过滤字段和过滤方式,exact表示精确=,icontains表示模糊。请求分别为=和cpu_icontains= ,往后推都是这么写
class MonitorFilter(django_filters.FilterSet):
    class Meta:
        model = Monitor
        fields = {
            "cpu": ['exact', 'icontains'],
            "mem": ['exact', 'icontains'],
            "disk": ['exact', 'icontains', 'isnull'],  # 等于、模糊、判空
            "create_time": ['lt', 'lte', 'gte', 'in', 'year__lt', 'year__gt'],  # 小于、小于等于、大于等于、之中、年份的小于大于、
        }

在views里使用:

from django_filters.rest_framework import DjangoFilterBackend

class MonitorViewSet(ModelViewSet):

    filter_backends = (DjangoFilterBackend,)  # 过滤器默认后端
    filter_class = MonitorFilter   # 指定过滤器类

具体参考:

    80%的人都看过的文章

本文来自凡蜕博客(https://blog.ysboke.cn), 转载请带上地址.。
    • sds
      sds

      也可以手动过滤

    匿名

    发表评论

    匿名网友