我正在制作我的第一个django应用程序,更特别的是在分页上。在我继续加入分页之前:
http://localhost:8000/posts
我会向我显示所有项目。
但现在我添加了分页,一切正常。我每页只显示2个项目,我有5个项目。当我点击页面时,一切正常:
http://localhost:8000/posts?page=1
http://localhost:8000/posts?page=2
http://localhost:8000/posts?page=3
但是当我点击时:
http://localhost:8000/posts
我遇到以下错误:
That page number is not an integer
这是我的view.py:
def posts(request):
all_posts = Post.objects.order_by('published_date')
paginator = Paginator(all_posts, 2)
page = request.GET.get("page")
try:
posts = paginator.page(page)
except PageNotAnInteger:
posts = paginator.page(page)
except EmptyPage:
posts = paginator.page(paginator.num_pages)
context = {
'posts': posts,
}
return render(request, 'my_blog/posts.html', context)
我怎样才能解决这个问题,并在点击时显示:http://localhost:8000/posts
显示第一页
答案 0 :(得分:4)
问题出在PageNotAnInteger
异常处理中,它应该是1
而不是page
:
try:
posts = paginator.page(page)
except PageNotAnInteger:
posts = paginator.page(1)
except EmptyPage:
posts = paginator.page(paginator.num_pages)
答案 1 :(得分:1)
尝试替换:
except PageNotAnInteger:
posts = paginator.page(page)
通过
except PageNotAnInteger:
posts = paginator.page(1)
特别同意