2013-03-21 100 views
0

我有一個表單查詢數據庫並返回放置在多個表中的信息。每列的行數可以達到數百個。每行都以我聲明的自定義模型的形式返回。某個表的所有行都存儲在一個對象容器中。「在多個表格中加載更多」分頁按鈕。 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)) 
+0

您的視圖代碼在哪裏表中。我們可以爲此創建選定的選項。在那個選項中,我們可以定義50,70或80,取決於你喜歡什麼。用戶可以選擇他想要在頁面中顯示多少個查詢。你在使用Paginator嗎? – catherine 2013-03-21 04:48:16

+0

我在我的視圖代碼編輯 – user1754045 2013-03-21 04:56:22

+0

嘗試使用Paginator來解決您的問題 – catherine 2013-03-21 04:57:40

回答

0

確定這是可能的。您必須使用所需的信息向服務器發出AJAX呼叫。當你在Django中處理這個請求時,你應該只響應表格行,而不是整個HTML頁面。然後在客戶端收到此響應時,只需將其添加到表格末尾。

的反應應該是這樣的:

<tr><td>col1 row 51</td></tr> 
... 
<tr><td>col1 row 100</td></tr> 

這裏是一個expample JS代碼,這樣的伎倆:

$.get("/yourapp/data", { page: 2}) .done(function(data) { 
    $('.mytable').append(data); 
}); 

但不是隻是{page: 2}提供所需的Django的分頁信息,我不不記得他們是什麼。我相信page是你需要的。你也想傳遞一些信息來表明你只請求表格行,而不需要頁面的其餘部分。

+0

什麼是「/ yourapp/data」鏈接?它是特定表格第二頁的超鏈接嗎? – user1754045 2013-03-21 23:21:46

+0

這是將用表格內容迴應的頁面。通常情況下,它與查看錶的頁面相同,但在這種情況下,您應該將'rows_only:1'和'page:2'一起傳遞,並在View中檢索此參數,並根據其值呈現不同的模板。整個頁面的一個模板和僅用於表格行的第二個模板。 – 2013-03-22 01:04:31