【发布时间】:2016-09-19 14:20:19
【问题描述】:
我的网站上有一个标准博客,我使用 Django Paginator 添加了分页功能。我还有一个侧边栏,它遍历所有帖子并显示标题和链接。除了list_view 中的侧边栏仅显示当前页面上可见的帖子的标题和链接之外,一切似乎都正常工作,但在detail_view 中,所有标题和链接都可用。我知道它为什么这样做,我只是不明白如何解决它。
下面是我的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 传递给模板并对其进行迭代,而不是使用分页的 @ 987654329@ 对象,我认为您目前是(我猜,因为您没有显示模板的相关部分。)
标签: python django django-models django-templates django-views