以下操作结合 djangorestframework 库来使用

安装与注册

  1. pip3 install django-filter
  1. INSTALLED_APPS = [
  2. ...
  3. 'django_filters',
  4. ...
  5. ]

示例

model.py
  1. class User(models.Model):
  2. # 模型字段
  3. name = models.CharField(max_length=10, verbose_name="姓名")
  4. sex = models.BooleanField(default=1, verbose_name="性别")
  5. age = models.IntegerField(verbose_name="年龄")
  6. phone = models.CharField(max_length=20, null=True, verbose_name="电话")
  7. addr = models.CharField(max_length=100,null=True,verbose_name="地址")

view.py
  • 视图层直接设置过滤字段

    1. # 以name和age过滤
    2. class UserViewSet(ModelViewSet):
    3. queryset = User.objects.all()
    4. serializer_class = UserModelSerializer
    5. filter_backends = (DjangoFilterBackend,)
    6. filter_fields = ('name', 'age')
  • filter_backends

    配置过滤器,也可以在setting.py文件全局配置

  1. # 这样
  2. REST_FRAMEWORK = {
  3. # 全局默认配置过滤
  4. 'DEFAULT_FILTER_BACKENDS': (
  5. 'django_filters.rest_framework.DjangoFilterBackend',
  6. )
  7. }
  • filter_fields

    设置过滤字段,这里设置了nameage

原文