在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的