我在我的网站上有一个标准的博客,我用Django分页器添加了分页。我还有一个侧边栏,可以遍历所有的帖子并显示标题和链接。除了在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})


发布于 2016-05-22 19:22:47
为所有帖子分别发送" posts“列表,而不应用分页器。在一个单独的列表变量(如"paginated_posts“)中发送分页的变量。这样你就不会被限制在右边有页码的帖子上了。
我认为最理想的方法是每页发送相同的帖子#,这与你想要显示的“最近帖子”的最大数量相同,前提是你不想在最近的帖子中显示所有的帖子。如果最近的文章有一个快乐的媒体#来匹配你想要分页的帖子数量--你们都已经设置好了。
https://stackoverflow.com/questions/37378512
复制相似问题