1. 安装过滤器
pip install django-filter
2. 在setting/app中进行注册
INSTALLED_APPS = [
.....
'django_filters',
]
3. 在DRF中进行配置
REST_FRAMEWORK = {
# 配置登录鉴权方式
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework_simplejwt.authentication.JWTAuthentication',
'rest_framework.authentication.SessionAuthentication',
'rest_framework.authentication.BasicAuthentication',
),
# 配置DRF使用的过滤器
'DEFAULT_FILTER_BACKENDS': ['django_filters.rest_framework.DjangoFilterBackend']
}
4. 在视图中使用
class AddrView(GenericViewSet, mixins.ListModelMixin, mixins.CreateModelMixin, mixins.DestroyModelMixin,
mixins.UpdateModelMixin):
""" 地址管理视图 """
queryset = models.Addr.objects.all()
serializer_class = AddrSerializers
# 设置认证用户才能有权限访问
permission_classes = [IsAuthenticated]
# 指定过滤字段
filterset_fields = ('user')