0

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

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

1 回答 1

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);
});

但不是只{page: 2}提供 Django 分页所需的信息,我不记得它们是什么。我相信这page就是你所需要的。此外,您还想传递一些东西来表明您只请求表格行,而不需要页面的其余部分。

于 2013-03-21T02:47:46.837 回答