Django ListView get_queryset(self)打破了paginate_by

时间:2014-04-10 17:48:18

标签: python django listview

在Django 1.6中,我使用的是ListView类。这没有paginate_by,但没有。当我使用paginate_by时,我得到object of type 'NoneType' has no len()。这只是在第一页之后,第一页没有问题。我不确定def get_queryset(self)为什么会弄乱paginate_by,因为它所做的只是定义query_set。

class ViewLog(LoginRequiredMixin, ListView):
    template_name = "bot_data/log_view.html"
    model = Log
    paginate_by = 3

    def get_queryset(self):
        parameter = self.request.GET.get('search')
        user_alpha = self.request.GET.get('user_alpha')
        if parameter == "latest":
            return Log.most_recent.all()
        elif parameter == "oldest":
            return Log.least_recent.all()
        elif parameter == "ascending":
            return Log.user_aplha_ascend.all()
        elif parameter == "descending":
            return Log.user_aplha_descend.all()

    def get_context_data(self, **kwargs):
        parameter = self.request.GET.get('search')
        context = super(ViewLog, self).get_context_data(**kwargs)
        context.update({'current_url': parameter})
        return context

修改: 我发现如果我在浏览器的url窗口中手动追加search = ascending as ether /log_view?search=ascending&page=2/log_view?page=2&search=ascending ......这两个组合都有效。我想在这一点上我需要找出如何手动进行分页并构建URL的

0 个答案:

没有答案