Django中按数字的条件分页
我有一个带有分页的Django视图:Django中按数字的条件分页,django,pagination,Django,Pagination,我有一个带有分页的Django视图: class MyListView(ListView): model = Model context_object_name = "Model" template_name = "template.html" paginate_by = 6 此模板有一个可以正常工作的搜索栏: def get_queryset(self): if query: pos
class MyListView(ListView):
model = Model
context_object_name = "Model"
template_name = "template.html"
paginate_by = 6
此模板有一个可以正常工作的搜索栏:
def get_queryset(self):
if query:
postresult = account_list.filter(name__contains=query)
list = postresult
return list
问题是,我希望带有搜索查询的页面的分页值为20。如何将paginate_值设为条件值?您可以替代:
但是,代码中query
参数的来源未知,因此您可能必须更改query=…
逻辑
如果您不想对查询集
(针对特定条件)进行分页,则可以返回None
class MyListView(ListView):
model = Model
context_object_name = "Model"
template_name = "template.html"
paginate_by = 6
def get_paginate_by(self, queryset):
query = self.request.GET.get('q')
if query:
return 20
else:
return super().get_paginate_by(queryset)