首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django分页器限制所有对象的迭代

问Django分页器限制所有对象的迭代
EN

Stack Overflow用户
提问于 2016-05-22 19:12:13
回答 1查看 1K关注 0票数 0

我在我的网站上有一个标准的博客,我用Django分页器添加了分页。我还有一个侧边栏,可以遍历所有的帖子并显示标题和链接。除了在list_view中,侧边栏只显示当前页面上可见的标题和链接,但在detail_view中,所有标题和链接都是可用的。我知道为什么要这么做,只是不知道怎么解决。

下面是我的list_view的一个副本和几个屏幕截图,以便于参考。谢谢。

post_list

代码语言:javascript
复制
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})

​

​

​

​

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-22 19:22:47

为所有帖子分别发送" posts“列表,而不应用分页器。在一个单独的列表变量(如"paginated_posts“)中发送分页的变量。这样你就不会被限制在右边有页码的帖子上了。

我认为最理想的方法是每页发送相同的帖子#,这与你想要显示的“最近帖子”的最大数量相同,前提是你不想在最近的帖子中显示所有的帖子。如果最近的文章有一个快乐的媒体#来匹配你想要分页的帖子数量--你们都已经设置好了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37378512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档