gpt4 book ai didi

python - Django 。对 Viewset 的 @link 或 @action 方法进行分页

转载 作者:行者123 更新时间:2023-12-05 07:51:13 26 4
gpt4 key购买 nike

我正在使用 Django Restframework 和 DRF 扩展开发一个 Restful API。

我有下一个用户 View 集

class UserViewSet(NestedViewSetMixin, viewsets.ModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
filter_class = conversation.UserFilter

@link(is_for_list=True)
def favorites(self,request,pk=None):
"""Return the profile of the user"""
fav = UserFavorite.objects.filter(user=request.user, is_favorite=True)
favorites = UserFavoriteReadOnlySerializer(fav,many=True)
return Response(favorites.data)

和设置.py:

REST_FRAMEWORK = {
...
'DEFAULT_PAGINATION_CLASS': (
'rest_framework.pagination.PageNumberPagination'
),
...

我想在该方法的响应中应用分页,但是不返回我想要的内容,因为返回与搜索方法关联的所有对象而不分页。

因为我可以用这个方法翻页?

最佳答案

如果您查看 DRF docs for PageNumberPagination ,您会看到您需要包含一个 'PAGE_SIZE' 键值对来设置返回的页数。

例如,您的分页设置应如下所示:

REST_FRAMEWORK = {
...
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
'PAGE_SIZE': 100
...
}

关于python - Django 。对 Viewset 的 @link 或 @action 方法进行分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35211582/

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