Facebook では、下にスクロールすると、投稿が 1 つずつ読み込まれます。Djangoでこれを行うにはどうすればよいですか? 他に何を使用する必要がありますか?
時間がかからないように、必要なすべてのオブジェクトをビューからテンプレートに渡すのは良い習慣ですか?
Facebook では、下にスクロールすると、投稿が 1 つずつ読み込まれます。Djangoでこれを行うにはどうすればよいですか? 他に何を使用する必要がありますか?
時間がかからないように、必要なすべてのオブジェクトをビューからテンプレートに渡すのは良い習慣ですか?
プロセスがどのように機能するかの一般的な概要:
recievedMore
、この関数はコールバックとして AJAX 呼び出しに提供されます。load_more
django ビューによってサポートされています。ビューは、AJAX 要求の情報を使用して、load_more
表示される次の画像セットまで QuerySet をフィルタリングします。ビューは、フィルタリングされた QuerSet を使用して HTML のスニピットをレンダリングし、それを AJAX 要求への応答として返します。recievedMore
サーバーからのデータを使用して関数を呼び出します。このrecievedMore
関数は、応答をページ上の適切な要素に追加します。クライアント側で無限スクロールライブラリとJQueryを使用すると、これをより簡単に実装できます。
Django ページネーションも関連しています。
ajaxリクエストを作成するjqueryプラグインである無限スクロール を使用
して、マークアップのその場所にレスポンスを配置できます
Django の一般的な ListView は、そのままでページネーションをサポートします
次のように使用します。
import models
from django.views.generic import ListView
class ObjectListView(ListView):
model = SomeModel
template_name = 'app/model_list.html'
context_object_name = "objects"
paginate_by = 10
今あなたのテンプレートに:
を使用してアイテムの次のページがあるかどうかを確認
しpage_obj.has_previous
、その URL を無限スクロールに送ります:
?page={{ objects.next_page_number }}