gpt4 book ai didi

python - Django 休息框架覆盖 ViewSet 中的 page_size

转载 作者:太空狗 更新时间:2023-10-29 17:02:07 24 4
gpt4 key购买 nike

我在使用 Django 休息框架分页时遇到问题。我在设置中设置了分页 -

'DEFAULT_PAGINATION_CLASS':'rest_framework.pagination.PageNumberPagination',
'PAGE_SIZE': 1

下面是我的 View 集。

class HobbyCategoryViewSet(viewsets.ModelViewSet):    
serializer_class = HobbyCategorySerializer
queryset = UserHobbyCategory.objects.all()

我想为这个 View 集设置不同的页面大小。我尝试设置 page_size 和 Paginate_by 类变量,但列表根据设置中定义的 PAGE_SIZE 进行分页。知道我哪里错了吗?

最佳答案

我通过创建自定义分页类解决了这个问题。并在类里面设置所需的页面大小。我在我的 View 集中将此类用作 pagination_class。

from rest_framework import pagination

class ExamplePagination(pagination.PageNumberPagination):
page_size = 2

class HobbyCategoryViewSet(viewsets.ModelViewSet):
serializer_class = HobbyCategorySerializer
queryset = UserHobbyCategory.objects.all()
pagination_class=ExamplePagination

我不确定是否有更简单的方法。这个对我有用。但是我认为仅仅为了改变page_size而创建新类是不好的。

编辑 - 简单的解决方案设置为

pagination.PageNumberPagination.page_size = 100 

在 View 集中。

class HobbyCategoryViewSet(viewsets.ModelViewSet):    
serializer_class = HobbyCategorySerializer
queryset = UserHobbyCategory.objects.all()
pagination.PageNumberPagination.page_size = 100

关于python - Django 休息框架覆盖 ViewSet 中的 page_size,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35432985/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com