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 に答える