我在我的網站上有一個標準博客,我使用Django Paginator添加了分頁。我還有一個側欄,可以遍歷所有帖子並顯示標題和鏈接。除了在list_view
側邊欄只顯示當前頁面上顯示的帖子的標題和鏈接,但在detail_view
中,所有標題和鏈接都可用,似乎大部分內容都可以使用。我知道爲什麼它這樣做,我只是不明白如何解決它。Django Paginator限制所有對象的迭代
下面是我的list_view
的副本和一對夫婦截圖,以便於參考。謝謝。
post_list
def post_list(request, tag_slug=None):
posts = Post.published.all()
tag = None
if tag_slug:
tag = get_object_or_404(Tag, slug=tag_slug)
posts = posts.filter(tags__in=[tag])
paginator = Paginator(posts, 3) # 3 posts in each page
page = request.GET.get('page')
try:
posts = paginator.page(page)
except PageNotAnInteger:
# If page is not an integer deliver the first page
posts = paginator.page(1)
except EmptyPage:
# If page is out of range deliver last page of results
posts = paginator.page(paginator.num_pages)
return render(request, 'press/post_list.html', {'page': page, 'posts': posts, 'tag': tag})
如果要在頁面的側欄上顯示比分頁項允許的更多近期文章,則需要將不同的QuerySet傳遞給模板並迭代該模板,而不是使用分頁的'posts'對象,因爲我假設你目前是(我猜,因爲你沒有展示你的模板的相關部分) – Ben