django-rest-framework - 覆盖列表时如何添加过滤器后端?

标签 django-rest-framework

如果我覆盖列表,过滤器后端将不起作用。如果我覆盖列表定义,如何应用我的过滤器?

class CircuitViewSet(viewsets.ModelViewSet):
    queryset = Circuit.objects.all()
    serializer_class = CircuitSerializer
    filter_backends = (filters.DjangoFilterBackend, filters.OrderingFilter,)
    filter_class = CircuitFilter

    def list(self, request):
        queryset = Circuit.objects.all()
        serializer = CircuitSerializer(queryset, many=True, context={'request': request})
        return Response(serializer.data)

最佳答案

class CircuitViewSet(viewsets.ModelViewSet):
    queryset = Circuit.objects.all()
    serializer_class = CircuitSerializer
    filter_backends = (filters.DjangoFilterBackend, filters.OrderingFilter,)
    filter_class = CircuitFilter

    def list(self, request):
        # with filter
        queryset = self.filter_queryset(self.get_queryset())

        # pagination
        page = self.paginate_queryset(queryset)
        if page is not None:
            serializer = self.get_serializer(page, many=True)
            return self.get_paginated_response(serializer.data)

        serializer = self.get_serializer(queryset, many=True)
        return Response(serializer.data)

关于django-rest-framework - 覆盖列表时如何添加过滤器后端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39138613/

相关文章:

django - 创建自定义过滤器

Django Rest Framework 忽略我的 IsOwnerOrReadOnly 权限

python - Django REST 框架 : creating hierarchical objects using URL arguments

python - Django-rest-framework:验证 ListSerializer

python - 在heroku上部署我的django-rest项目的问题

python - 如何将 Django Rest Framework 与 contrib.auth View 连接

python - ModelSerializer 'TypeError: "ReturnList“不可调用”,许多=True

python - 嵌套序列化器 Django Rest Framework

登录到数据库时,Django rest 框架不加密密码

python - Django Rest Framework Api 查看 GET