我最近不得不这样做。您可以覆盖 get_paginate_by 函数来获取查询字符串参数。这是一个基本的例子。
Class AssistantList(ListView):
template_name = "register/assistant_list.html"
context_object_name = 'assistant_list'
paginate_by = 25
def get_paginate_by(self, queryset):
"""
Paginate by specified value in querystring, or use default class property value.
"""
return self.request.GET.get('paginate_by', self.paginate_by)
然后在我们的 html 中,我们有一个下拉选择,用户可以在其中选择要查看的项目数。
<form action="." method="get">
<select name="paginate_by">
<option>25</option>
<option>50</option>
<option>75</option>
<option>100</option>
</select>
</form>
我们添加了一些 javascript 以使其自动提交,您需要将 paginate_by 传递给上下文,以便确保它继续在页面之间传递。