首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django中的条件pagination_by数

Django中的条件pagination_by数
EN

Stack Overflow用户
提问于 2020-10-23 23:03:30
回答 1查看 225关注 0票数 2

我有一个带分页的Django视图:

代码语言:javascript
复制
class MyListView(ListView):
     model = Model
     context_object_name = "Model"
     template_name = "template.html"
     paginate_by = 6

此模板具有一个工作良好的搜索栏:

代码语言:javascript
复制
def get_queryset(self):
     if query:
          postresult = account_list.filter(name__contains=query)     
          list = postresult  
     return list

问题是,我希望具有搜索查询的页面的分页值为20。如何使paginate_by值成为一个条件值?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-23 23:07:25

您可以重写 method [Django-doc]

代码语言:javascript
复制
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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64508291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档