本文介绍了在Django-rest-framework中过滤ListAPIView的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用ListAPIView,但无法过滤结果。我的代码是:

I'm using ListAPIView, but I can't filter the results. My code is:

class UserPostReadView(generics.ListAPIView):
    serializer_class = PostSerializer
    model = serializer_class.Meta.model
    queryset = model.objects.order_by('-post_time')
    lookup_field = 'poster_id'
    paginate_by = 100

在这种情况下, lookup_field 被忽略,但是文档说该类也受支持。如果我尝试通过通用视图实现自定义 get ,则不知道如何重新实现 paginate_by 。有任何想法吗?

In this case, lookup_field is ignored, but the documentation says that it's supported for this class too. If I try to implement a custom get over a generic view, I don't know how to reimplement paginate_by. Any ideas?

推荐答案

我找到了解决方案

class UserPostsReadView(generics.ListAPIView):
    serializer_class = PostSerializer
    model = serializer_class.Meta.model
    paginate_by = 100
    def get_queryset(self):
        poster_id = self.kwargs['poster_id']
        queryset = self.model.objects.filter(poster_id=poster_id)
        return queryset.order_by('-post_time')

来源:

这篇关于在Django-rest-framework中过滤ListAPIView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-29 06:33