我有一个表单,用于查询数据库并返回放置在多个表中的信息。每列的行数可以达到数百。每行都作为我声明的自定义模型返回。某个表的所有行都存储在一个对象容器中。
我想最初只加载每个表中的前50行。在每个表的底部,我想放置一个“加载更多”按钮,点击该按钮可以加载50个以上的查询(如果小于50,则加载其余结果)。
Django的分页教程让我觉得我只能将分页分成不同的页面。我可以使用加载更多按钮进行行分页吗?或者是我想要创造的东西?
编辑:这是我当前正在为每个表打印行的方式,这是一个简单的for循环
{% for r in row %} <tr> <td>{{ r.name }}</td> <td>{{ r.age }}</td> <td>{{ r.state }}</td> </tr>
{%endfor%}
这是我对1张桌子的看法:
pers = Personal.objects.all()
pers = formfilter (name, age, state)
c = RequestContext(request, {
"cname": name})
return HttpResponse(t.render(c))
答案 0 :(得分:0)
当然有可能。您必须使用所需信息对服务器进行AJAX调用。当您在Django中处理此请求时,您应该仅响应表行,而不是整个HTML页面。然后在客户端收到此响应时,只需将其添加到表的末尾。
响应应如下所示:
<tr><td>col1 row 51</td></tr>
...
<tr><td>col1 row 100</td></tr>
这是一个可以解决问题的示例JS代码:
$.get("/yourapp/data", { page: 2}) .done(function(data) {
$('.mytable').append(data);
});
但是,不仅仅提供Django分页信息所需的{page: 2}
,我不记得它们是什么。我相信page
就是你所需要的。此外,您还需要传递一些内容,以表明您只请求表行,而不是页面的其余部分。