首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ListView中的Django分页没有page_obj吗?

在Django中,ListView是一个通用视图,用于显示一个包含多个对象的列表。它提供了分页功能,可以将大量数据分成多个页面展示。

在ListView中,默认情况下是没有page_obj属性的。page_obj是Django内置的分页器Paginator返回的一个分页对象,包含了当前页面的数据和相关的分页信息。

如果想要在ListView中使用page_obj,需要手动添加paginate_by属性来指定每页显示的对象数量,并且在模板中使用paginatorpage_obj来进行分页的渲染。

以下是一个示例代码:

代码语言:txt
复制
from django.views.generic import ListView
from django.core.paginator import Paginator

class MyListView(ListView):
    model = MyModel
    template_name = 'my_template.html'
    paginate_by = 10

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        paginator = Paginator(self.object_list, self.paginate_by)
        page_number = self.request.GET.get('page')
        page_obj = paginator.get_page(page_number)
        context['paginator'] = paginator
        context['page_obj'] = page_obj
        return context

在上述代码中,paginate_by属性指定了每页显示的对象数量为10。get_context_data方法中使用Paginatorget_page方法来获取分页对象page_obj,并将其添加到上下文中。

在模板中,可以通过paginatorpage_obj来进行分页的渲染,例如:

代码语言:txt
复制
{% for item in page_obj %}
    {{ item }}
{% endfor %}

<div class="pagination">
    <span class="step-links">
        {% if page_obj.has_previous %}
            <a href="?page=1">&laquo; first</a>
            <a href="?page={{ page_obj.previous_page_number }}">previous</a>
        {% endif %}

        <span class="current-page">{{ page_obj.number }}</span>

        {% if page_obj.has_next %}
            <a href="?page={{ page_obj.next_page_number }}">next</a>
            <a href="?page={{ page_obj.paginator.num_pages }}">last &raquo;</a>
        {% endif %}
    </span>
</div>

以上代码展示了如何在模板中使用page_obj进行分页的渲染,并提供了跳转到第一页、上一页、下一页和最后一页的链接。

关于Django分页的更多信息,可以参考腾讯云的相关产品文档:Django分页

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

DjangoListView超详细用法(含分页paginate)

开发环境: python 3.6 django 1.11 场景一 经常有从数据库获取一批数据,然后在前端以列表形式展现,比如:获取到所有的用户,然后在用户列表页面展示。...针对这种常用场景,提供了一个更快速便捷方式,那就是ListView,用法如下: from django.views.generic import ListView class UsersView(ListView...场景四 我想要限制接口请求方式,比如限制只能GET访问,代码如下: from django.views.generic import ListView class UsersView(ListView...,前页面最好得分页展示呀,这怎么搞?...到此这篇关于DjangoListView超详细用法(含分页paginate)文章就介绍到这了,更多相关DjangoListView用法内容请搜索ZaLou.Cn以前文章或继续浏览下面的相关文章希望大家以后多多支持

1.8K10
  • 拓展 Django Pagination 实现完善分页效果

    在 使用 Django Pagination 实现简单分页功能 ,我们实现了一个简单分页导航效果。...于是 Django 把这些相同逻辑代码抽取了出来,写成了一系列通用视图函数,即基于类通用视图。本文将使用到通用视图 ListView。...ListView 用来从数据库获取一个对象列表,而对列表进行分页过程也是比较通用ListView 已经实现了分页功能。...# 关于什么是 Paginator,Page 类在 使用 Django Pagination 实现简单分页功能:http://zmrenwu.com/post/23/ # 已有详细说明...) # 将更新后 context 返回,以便 ListView 使用这个字典模板变量去渲染模板 # 记住此时字典已有了显示分页导航条所需数据

    2K60

    DjangoListView超详细用法(含分页paginate功能)

    开发环境: python 3.6 django 1.11 场景一 经常有从数据库获取一批数据,然后在前端以列表形式展现,比如:获取到所有的用户,然后在用户列表页面展示。...针对这种常用场景,提供了一个更快速便捷方式,那就是ListView,用法如下: from django.views.generic import ListView class UsersView(ListView...,比如:既要用户是某部门,还只要获取到性别是男,这时候,可以使用Django提供Q函数来实现。...场景四 我想要限制接口请求方式,比如限制只能GET访问,代码如下: from django.views.generic import ListView class UsersView(ListView...,前页面最好得分页展示呀,这怎么搞?

    74000

    Django分页功能改造,一比一还原百度搜索分页效果

    Django设计分页Django里面可以定义一个标签函数来做分页,这个标签函数主要目的就是输出要显示页码列表,然后定义一个分页模板来渲染html页面即可。...定义标签函数 只要是视图继承generic.ListView,我定义这个分页标签函数都是可以直接使用,如果是自己定义分页器,只需要修改标签函数参数,拿到分页总数和当前页码也可以通用。...函数逻辑是根据传入context分页信息来生成适当页面按钮范围。如果分页总数不大于最大显示数,则直接显示所有页码。...,就是判断有没有上一页和下一页去显示上下页按钮,然后中间页码直接去循环页码列表。...总结 这篇博客主要介绍了作者如何在Django网站实现了一个类似百度搜索页面的分页效果,并提供了相关代码和思路。

    37320

    基于django视频点播网站开发-step4-首页功能

    在本讲,我们开始首页功能开发,在开发过程,大家将会学习到Django通用视图类、分页对象paginator以及foreignKey外键使用。 效果演示 [16851ab0d057a5d6?...我这样设计目的呢,是让大家把精力放到学习django上面来,不必过度关注花哨页面效果。 我们把首页拆解为4个小业务模块来开发,分别是:列表显示、分页功能、搜索功能、分类功能。...显示列表数据非常简单,我们使用django内置视图模版类ListView来显示,首先在view.py编写IndexView类,用它来显示列表数据。...这里我们使用到了django内置标签,比如for语句、empty语句。这些都是django中非常常用语句。在之后教程我们会经常遇到。...,可参考 这里 分页功能 在Django,有现成分页解决方案,我们开发者省了不少事情。

    1.3K41

    Django Pagination 完善分页

    Django Pagination 简单分页 ,我们实现了一个简单分页导航效果。但效果有点差强人意,我们只能点上一页和下一页按钮进行翻页。...比较完善分页效果应该像下面这样,但想实现这样一种效果,Django Pagination 内置 API 已无能为力。...本文将通过拓展 Django Pagination 来实现下图这样比较完善分页效果。...拓展 Pagination 在此之前,我们已将首页文章列表视图函数转为了类视图,并且使用了类视图 ListView 已经为我们写好分页代码来达到分页目的(详情请查看文章开头处给出链接)。...为了实现如下所展示分页效果,接下来就需要在 ListView 基础上进一步拓展分页逻辑代码。

    1.3K50

    django ListView使用 ListView获取url参数值方式

    view.py from django.views.generic import ListView,DetailView from xxxx.models import Model_Name class...Colortag_view(ListView): #context_object_name = '如果不指定的话在html页面 可以使用object_list获取' context_object_name...后参数传入视图中,在视图中先将数据通过传递分类进行筛选,再将筛选后数据传递到页面进行渲染。 如果我们此时还做了分页展示,则将后端处理数据时分类值也传到页面,在我们点击分页时跳转地址?...在后端通过地址后参数将数据进行模糊(constatins)筛选,再将筛选后商品和参数传递回前端,将数据在前端进行展示 当我们点击分页时,将查询值作为参数传递回后端。...ListView使用 ListView获取url参数值方式就是小编分享给大家全部内容了,希望能给大家一个参考。

    3.9K20

    diango之基于内置视图CBS编程

    Class-based views是Django为解决建站过程常见呈现模式而建立。..."/login/" TemplateView 显示Django HTML template 一般网站中使用模板显示ListView 显示对象列表 文章列表页 DetailView 显示对象详情 文章详细页...def get_queryset(self): 第一个方法返回一个字典给前端,包括分页信息,列表信息,已经其他自定义信息;第二个方法返回数据库获取到数据(可能经过条件迭代),具体实现实例代码如下...Mixin实现 view如果觉得自带post、get方法不够好,也可以重写post、get方法,这样就与函数式编程没有什么区别。...在Django, 我们可以使用mixin为CBVs提供更多扩展性, 当然在类继承过程, 我们推荐以下原则: Django自身提供View永远在最右边 mixin依次在以上view左边 mixin

    71130

    Django Pagination 简单分页

    这个类位于 django/core/paginator.py,需要使用它时,只需在适当地方导入这个类即可。下面的代码摘自 Django 官方文档 Pagination 示例。...image.png 这里,Django 官方文档给出了一个在视图函数对列表进行分页示例,这个视图函数获取一个联系人列表并对其分页: from django.core.paginator import...不过在我们博客项目中,我们不必写这些代码了。回顾在 基于类通用视图:ListView 和 DetailView 内容,我们已将视图函数转换成了类视图。...为了看到分页效果,你可以把这个数值减小。这样首页文章列表就已经分好页了。 在模板设置分页导航 接下来便是在模板设置分页导航,比如上一页、下一页按钮,以及显示一些页面信息。...ListView 传递了以下和分页有关模板变量供我们在模板中使用: paginator ,即 Paginator 实例。 page_obj ,当前请求页面分页对象。

    2.2K50

    通过 Django Pagination 实现简单分页

    Django 内置 Pagination 能够帮助我们实现简单分页功能,在上一篇教程[3]我们使用脚本批量生成了几百篇博客文章,正好用于测试分页效果。...这里 Django 官方文档给出了一个在视图函数对列表进行分页示例,这个视图函数获取一个联系人列表并对其分页: from django.core.paginator import Paginator...而类视图 ListView 已经帮我们写好了上述分页逻辑,我们只需通过指定 paginate_by 属性来开启分页功能即可,即在类视图中指定 paginate_by 属性值: blog/views.py...在模板设置分页导航 接下来便是在模板设置分页导航,比如上一页、下一页按钮,以及显示一些页面信息。我们这里设置和 Django 官方博客那样分页导航样式(具体样式见上图)。...ListView 传递了以下和分页有关模板变量供我们在模板中使用: paginator ,即 Paginator 实例。 page_obj ,当前请求页面分页对象。

    92420

    稳定易用 Django 分页库,完善分页功能

    实现简单分页[3] ,我们实现了一个简单分页导航。...强大地方就在于海量第三方应用供我们挑选,几乎大部分 web 开发需求,django 都能找到他人已经写好第三方应用,拿来即用。...': True, # 当请求了不存在页,显示第一页 } 在模板需要分页地方,调用分页对象 render 方法就可以了,比如在 index.html : {% if is_paginated %...} {{ page_obj.render }} {% endif %} 注意这里 page_obj分页对象列表,具体请参考上一篇文章讲解。...django 查找模板顺序是,首先在项目配置模板根路径寻找(我们项目中配是 templates 文件夹),没有找到的话,再去应用 templates 目录下寻找。

    91220

    AndroidListViewitem点击没有反应解决方法

    如果stu_item.xml里面包括button或者checkbox等控件,默认情况下listitem会失去焦点,导致无法响应item事件,最常用解决办法是在stu_item.xml布局文件设置...该属性是当一个为view获取焦点时,定义viewGroup和其子控件两者之间关系。...属性值有三种: beforeDescendants:viewgroup会优先其子类控件而获取到焦点 afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点...总结 以上所述是小编给大家介绍AndroidListViewitem点击没有反应,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家。...在此也非常感谢大家对ZaLou.Cn网站支持!

    1.5K10

    SweetAler弹框插件与分页器插件

    SweetAlert插件 sweetalert是一款基于Bootstrap专门用来设计弹窗插件,具体弹窗样式及相关代码可以参考此链接插件下载地址 打开下载好插件之后我们需要将dist文件夹导入到我们项目的静态文件...使用Django向数据库批量插入数据 在看分页器之前我们先批量向数据库插入一些数据,向数据库插入数据方式有多种,这里思路是先将数据放入一个列表,然后统一将数据一起写入数据库,这里使用Django...虽然上面我们手写分页器也具备了一些简单功能,但是比如上一页、下一页、首页、尾页等功能我们还没有添加,下面来了解一个自定义分页器组件。...:param current_page: 当前页 :param all_count: 数据库数据总条数 :param per_page_num...return render(request,'test.html',locals()) #test.html {% for user_obj in page_queryset %}#这里循环分页

    1.4K20

    基于django视频点播网站开发-step10-后台评论管理功能

    原文地址:https://mypython.me 本讲,我们会讲到评论管理功能,数据库每一条是来自用户评价,因此后台中评论管理只有评论列表和评论删除功能,没有增加评论和编辑评论。.../', views.comment_delete, name='comment_delete'), 首先是评论列表展示,我们通过CommentListView视图类来实现,该类依然是继承ListView...代码如下 class CommentListView(AdminUserRequiredMixin, generic.ListView): model = Comment template_name...get_context_data(**kwargs) paginator = context.get('paginator') page = context.get('page_obj...来实现评论列表展示,通过get_context_data()来实现分页功能,通过get_queryset()来实现搜索功能。

    67510
    领券