且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Django过滤器不适用于Viewset

更新时间:2023-09-09 12:52:40

好吧,所以终于从 Aman 所述在 filter_queryset 下的 queryset --

Okay, So finally found the solution from DRF Docs. The issue was that in case of normal ViewSet you have to override the method filter_queryset() and return the appropriate queryset accordingly. Then use the queryset under filter_queryset as mentioned by Aman -

serializer = PostListSerializer(self.filter_queryset(self.get_queryset()), many=True, context={"request": request})

以下是仍面临问题的人员的参考代码-

Below is the code for reference for those who are still facing issues -

filter_queryset-

def filter_queryset(self, queryset):
    filter_backends = (DjangoFilterBackend, )

    # Other condition for different filter backend goes here

    for backend in list(filter_backends):
        queryset = backend().filter_queryset(self.request, queryset, view=self)
    return queryset