gpt4 book ai didi

django - 使用通用ListView的动态分页

转载 作者:行者123 更新时间:2023-12-04 03:12:22 25 4
gpt4 key购买 nike

我要求用户应该能够选择他希望在助手列表中看到的每页多少个项目。我在Django 1.4中使用通用的ListView。

更改之前的代码如下:

Class AssistantList(ListView):
template_name = "register/assistant_list.html"
context_object_name = 'assistant_list'
paginate_by = 25

如何根据用户的选择动态设置paginate_by,而不是如上所述进行硬编码?

最佳答案

我最近才不得不这样做。您可以重写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传递到上下文,以便确保它可以继续从页面传递到页面。

关于django - 使用通用ListView的动态分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14716270/

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