【问题标题】:Creating a pagination using Django使用 Django 创建分页
【发布时间】:2021-06-20 20:38:18
【问题描述】:

我正在使用 Django Rest Framework 开发一个小项目,我正在寻找一种使用 Viewset 创建分页的方法,我检查了 DJR 文档,但我找不到关于使用 Viewsit 类 进行分页的任何答案,

这是我的代码:

class ContactView(viewsets.ViewSet):
    
    def list(self, request):
        contactObject = Contact.objects.all()
        contactSerializer = ContactSerializer(contactObject, many=True)
        return Response(contactSerializer.data)

【问题讨论】:

标签: django


【解决方案1】:

试试这个

class ListModelMixin(object):
    """
    List a queryset.
    """
    def list(self, request, *args, **kwargs):
        queryset = self.filter_queryset(self.get_queryset())

        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)


class ContactView(ListModelMixin, viewsets.GenericViewSet):
    queryset = Contact.objects.all()
    serializer = ContactSerializer

【讨论】:

  • 'ContactView' 应该包含serializer_class 属性,或者覆盖get_serializer_class() 方法。
  • @AmineBouhaddi 你到底是什么意思。没有得到
  • 已通过添加 _class 修复,非常感谢,我看不到分页数 :(
  • 代码工作正常,但我没有得到分页号,我应该在之前进行任何配置吗?
  • 非常感谢,现在工作真的很好,我在 settings.py 中添加了 REST_FRAMEWORK PAGINATION
猜你喜欢
  • 2017-11-25
  • 2015-06-25
  • 1970-01-01
  • 2016-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-12
相关资源
最近更新 更多