django-后台管理及分页器
from django.shortcuts import render
from .models import Article
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
def article_list(request):
object_list = Article.objects.all()
paginator = Paginator(object_list, 10) # 每页显示10篇文章
page = request.GET.get('page')
try:
articles = paginator.page(page)
except PageNotAnInteger:
# 如果页数不是一个整数,展示第一页
articles = paginator.page(1)
except EmptyPage:
# 如果页数超出了范围,展示最后一页
articles = paginator.page(paginator.num_pages)
return render(request, 'article_list.html', {'articles': articles})
这段代码首先从models中获取所有文章,然后创建一个Paginator对象,每页展示10篇文章。根据从GET请求中获取的page
参数,它尝试获取相应的页面。如果页码不是一个整数或超出范围,它将展示相应的处理:如果页码不是整数,展示第一页;如果页码超出范围,展示最后一页。最后,它使用传递给它的文章列表渲染模板。
评论已关闭