我有一个带分页的Django视图:
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_by值成为一个条件值?
发布于 2020-10-23 23:07:25
您可以重写 method [Django-doc]:
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)然而,代码中query参数的来源是未知的,因此您可能必须更改query = …逻辑。
如果不想对None进行分页(对于特定条件),则可以返回Queryset。
https://stackoverflow.com/questions/64508291
复制相似问题