Django实现文章列表的分页功能

一 重写视图函数article_list,实现分页功能

@login_required(login_url='/account/login')
def article_list(request):
    # 请求用户的文章列表
    articles_list = ArticlePost.objects.filter(author=request.user)
    # 依据查询到的文章对象articles_list创建分页实例对象,并且规定每页最多5篇文章
    paginator = Paginator(articles_list, 5)
    # 获得当前浏览器GET请求的参数page的值,也就是当前浏览器所请求的页面数值
    page = request.GET.get('page')
    try:
        # 用于得到指定页面的内容
        current_page = paginator.page(page)
        # 得到当前页的所有对象列表
        articles = current_page.object_list
    # 请求页码数值不是整数
    except PageNotAnInteger:
        current_page = paginator.page(1)
        articles = current_page.object_list
    # 请求页码数值为空或者在URL参数中没有page
    except EmptyPage:
        # paginator.num_pages返回的是页数
        current_page = paginator.page(paginator.num_pages)
        articles = current_page.object_list
    # 给前端渲染的数据是文章列表和当
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值