django - 在滚动上加载更多 - 我有分页,我如何加载更多?

时间:2013-08-14 19:26:33

标签: jquery python django pagination

我想编写一个代码,当我到达页面底部时,该代码从db中获取更多数据。

我有这个views.py:

locations = Location.objects.filter(**s_kwargs).distinct('id')
paginator = Paginator(locations, 10)
if  request.GET.get('page'):
   locs = paginator.page(request.GET.get('page'))
else:
   locs = paginator.page(1)
data['locs'] = locs
return render_to_response("result.html",data,context_instance=RequestContext(request)) 

这是我检测页面底部的js:

 $(window).scroll(function () {
  if ($(document).height() <= $(window).scrollTop() + $(window).height()) {
    alert("start loading more data");//<--- load more data from db. 
  }
 });

我不知道如何做到这一点我的想法,分页器让我感到困惑。我如何从db获取下一个数据?如何将新的数据附加到html中的现有数据?我需要你的指导

1 个答案:

答案 0 :(得分:5)

看起来你想在javascript中为下一页制作一个AJAX请求。在views.py中,您可能希望执行类似

的操作
return HttpResponse(json.dumps(data), mimetype="application/json")

而不是像现在一样返回HTML页面。 (如果您还需要该控制器来提供原始页面,也许您可​​以使用一个可选的查询参数来告诉服务器提供JSON响应而不是通常的HTML。)