gpt4 book ai didi

Django REST 随机查询分页

转载 作者:行者123 更新时间:2023-12-05 01:47:22 24 4
gpt4 key购买 nike

在 Django REST 通用 ListView 中,我覆盖了 get_query_set 方法并将 paginate_by 设置为 25。

我想随机化每个页面中的一组项目。但是,当我在 get_query_set 方法中随机化项目时,整个集合都是随机化的。

明确:项目列表是 A B C D E F G 并假设 paginate_by 是 2对于第一页,它应该随机返回 A B,对于第二页,它应该随机返回 C D 等等。

有什么技巧吗?

最佳答案

我还没有对此进行测试,但您似乎需要重写 View 中的 paginate_queryset 方法来随机化页面中的对象。所以它会像..

 # or use whatever you were using to randomize the list
from random import shuffle

class MyView(ListAPIView):

def paginate_queryset(self, queryset):

page = super(MyView, self).paginate_queryset(queryset):
shuffle(page.object_list)
return page

有关 paginate_queryset 如何工作的更多信息,请参阅 ListAPIView 的源代码:https://github.com/tomchristie/django-rest-framework/blob/master/rest_framework/generics.py

关于Django REST 随机查询分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27004468/

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