我目前正在listview中使用内置的Django分页来显示用户的查询集,它可以正常工作。现在,我想将输出随机化,但是如果我在列表中拉出查询集并随机播放对象,那么当我前往不同的页面时,整个用户列表就会被洗牌。
class ExampleListView(ListView):
paginate_by = 10
...
def get_queryset(self):
output = list(UserProfile.objects.all())
random.shuffle(output)
return output
答案 0 :(得分:3)
好的,我可以建议您使用自定义paginator_class
类
Paginator
class ExampleListView(ListView):
paginate_by = 10
paginator_class = ShuffledPaginator
...
例如,paginator可以跟随
class ShuffledPaginator(Paginator):
def page(self, number):
page = super(ShuffledPaginator, self).page(number)
random.shuffle(page.object_list)
return page