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

我有一个带有分页的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_值设为条件值?

您可以替代:

但是,代码中
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)