brs*_*gic 3 django django-rest-framework
在 Django REST 通用列表视图中,我重写了get_query_set方法并设置paginate_by为 25。
我想随机化每个页面中的一组项目。但是,当我在 get_query_set 方法中随机化项目时,整个集合都是随机化的。
澄清一下:项目列表是,A B C D E F G并假设 paginate_by 是2
对于第一页,它应该A B以随机方式返回,对于第二页,它应该以C D随机方式返回,等等。
有什么棘手的方法吗?
我还没有对此进行测试,但似乎您需要重写视图中的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
Run Code Online (Sandbox Code Playgroud)
有关 paginate_queryset 如何工作的更多信息,请参阅 ListAPIView 的源代码:https://github.com/tomchristie/django-rest-framework/blob/master/rest_framework/generics.py
| 归档时间: |
|
| 查看次数: |
661 次 |
| 最近记录: |