在 Facebook 中,当我们向下滚动时,它会一个一个地加载帖子。我怎样才能在 Django 中做到这一点?我还需要使用什么?
将所有必需的对象从视图传递到模板是否是一种好习惯,这样就不会花费太多时间?
在 Facebook 中,当我们向下滚动时,它会一个一个地加载帖子。我怎样才能在 Django 中做到这一点?我还需要使用什么?
将所有必需的对象从视图传递到模板是否是一种好习惯,这样就不会花费太多时间?
该过程如何工作的一般概述:
recievedMore
,这个函数作为回调提供给 AJAX 调用。load_more
django 视图支持。该load_more
视图使用 AJAX 请求中的信息将 QuerySet 过滤到将显示的下一组图像。该视图使用过滤后的 QuerSet 呈现 HTML 片段并将其作为对 AJAX 请求的响应返回。recievedMore
使用来自服务器的数据调用函数。该recievedMore
函数将响应附加到页面上的适当元素。在客户端使用无限滚动库和JQuery可以更轻松地实现这一点。
Django Pagination也是相关的。
您可以使用无限滚动
它的一个 jquery 插件来发出 ajax 请求 - 并将响应放在标记中的位置
Django 的通用 ListView 支持开箱即用的分页
像这样使用它:
import models
from django.views.generic import ListView
class ObjectListView(ListView):
model = SomeModel
template_name = 'app/model_list.html'
context_object_name = "objects"
paginate_by = 10
现在在您的模板中:
检查是否有下一页项目使用:
page_obj.has_previous
然后将该网址提供给无限滚动:
?page={{ objects.next_page_number }}