django - 在 django-rest-framework 中过滤 ListAPIView

标签 django django-rest-framework

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

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在通用 View 中,我不知道如何重新实现 paginate_by .有任何想法吗?

最佳答案

我找到了解决方案

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')

来源:http://www.django-rest-framework.org/api-guide/filtering/#filtering-against-the-url

关于django - 在 django-rest-framework 中过滤 ListAPIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16753173/

相关文章:

python - Django + Auth0 JWT 认证拒绝解码

python - 在哪里编写代码来扩展 django 用户表并捕获用户身份验证详细信息

django - 在 Django 中,如何在模板中手动构建表单集?

unit-testing - 与 APIClient() 相比,使用 RequestsClient() 有什么优势?

python - Django 所有 url SSL

python - 如何告诉 Python 不要解释字符串中的反斜杠?

python - Virtualenv 无法运行

django - 如何使用DjangoRestFramework序列化为多个模型

Django REST Serializer 使所有字段 allow_null 或不需要

python - 单元测试 JWT token 过期 : Django REST