尽管设置了paginate_by,但Django ListView仍未分页

时间:2020-01-23 00:30:13

标签: django django-views

Django v3.0

查看:

class UnreadListView(ListView):
    """
    View to show all unread feed items
    """
    model = FeedItem
    template_name = 'rss/unread_feeds.html'
    paginate_by = 15

    def get_context_data(self, **kwargs):
        # Call the base implementation first to get a context
        context = super().get_context_data(**kwargs)
        context['unread_feeds'] = FeedItem.objects.filter(
            is_archived=False).order_by('-published')
        return context

当我在模板中进行分页打印时,它会返回为true。我不确定如何进行。

1 个答案:

答案 0 :(得分:0)

我想您正在模板中使用Navbar变量。此查询集将不会被分页,因为在您的查询中您没有进行任何分页。 Django的unread_feeds对在关键字ListView下存储在context字典中的查询集应用分页。

如果您希望在模板中将该查询集(Django的object_list为您创建的查询集)命名为ListView,则将视图的unread_feeds属性设置为该值,即context_object_name

如果您还想对该查询集执行自定义过滤,则应该覆盖视图的context_object_name = 'unread_feeds'方法。

如果您还想对结果进行排序,则可以设置视图的get_queryset()属性。