在多个表中“加载更多”分页按钮。 Django的

时间:2013-03-21 01:55:25

标签: python django

我有一个表单,用于查询数据库并返回放置在多个表中的信息。每列的行数可以达到数百。每行都作为我声明的自定义模型返回。某个表的所有行都存储在一个对象容器中。

我想最初只加载每个表中的前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))

1 个答案:

答案 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就是你所需要的。此外,您还需要传递一些内容,以表明您只请求表行,而不是页面的其余部分。