それ以外の方法(Djangoのネイティブページネーションか別のパッケージのいずれか)が存在しない場合は、ページごとに複数のページ付けが可能ですか?ジャンゴページネーションはページごとに複数のページ区切りを行うことができますか?
約5つのオブジェクトのリストを、それぞれのオブジェクトが独自のページ区切りコンテキストを持つように表示したいとします。
便宜のため、ここにはdocumentation for django-paginationがあります。
それ以外の方法(Djangoのネイティブページネーションか別のパッケージのいずれか)が存在しない場合は、ページごとに複数のページ付けが可能ですか?ジャンゴページネーションはページごとに複数のページ区切りを行うことができますか?
約5つのオブジェクトのリストを、それぞれのオブジェクトが独自のページ区切りコンテキストを持つように表示したいとします。
便宜のため、ここにはdocumentation for django-paginationがあります。
もちろん、可能です。私はdjango-paginationパッケージについては話すことができませんが、デフォルトのDjangoのPaginator
クラスを使用することは間違いありません。ビューの中に必要な数だけ作成することができます。別々のGETパラメータを選択して、それぞれのページを指定すればいいです。
私はこの投稿が古いと知っていますが、まだ関連性があります。次はDjango 1.9で動作します。
これは、上記の重要なことは、 'ページ1' と 'ページ2' です
views.py
def myview():
Model_one = Model.objects.all()
paginator = Paginator(Model_one, 6)
page = request.GET.get('page1')
try:
Model_one = paginator.page(page)
except PageNotAnInteger:
Model_one = paginator.page(1)
except EmptyPage:
Model_one = paginator.page(paginator.num_pages)
Model_two = Model_other.objects.all()
paginator = Paginator(Model_two, 6)
page = request.GET.get('page2')
try:
Model_two = paginator.page(page)
except PageNotAnInteger:
Model_two = paginator.page(1)
except EmptyPage:
Model_two = paginator.page(paginator.num_pages)
context = {'Model_one': Model_one, 'Model_two': Model_two}
return render(request, 'template.html', context)
、それを行う方法です。テンプレートに
、
{% if model_one %}
<div class="col-md-12 well">
{% for item in model_one %}
..... iterates through model_one.....
{% endfor %}
<span class="step-links pagination">
{% if model_one.has_previous %}
<a href="?page1={{ model_one.previous_page_number }}"> previous </a>
{% endif %}
<span class="current">
Page {{ model_one.number }} of {{ model_one.paginator.num_pages }}
</span>
{% if model_one.has_next %}
<a href="?page1={{ model_one.next_page_number }}"> next </a>
{% endif %}
</span>
</div>
{% endif %}
{% if model_two %}
<div class="col-md-12 well">
{% for item in model_two %}
..... iterates through model_two.....
{% endfor %}
<span class="step-links pagination">
{% if model_two.has_previous %}
<a href="?page2={{ model_two.previous_page_number }}"> previous </a>
{% endif %}
<span class="current">
Page {{ model_two.number }} of {{ model_two.paginator.num_pages }}
</span>
{% if model_two.has_next %}
<a href="?page2={{ model_two.next_page_number }}"> next </a>
{% endif %}
</span>
</div>
{% endif %}
が再度各モデルのページ付けを区別するために「ページ1」と「PAGE2」を使用。
私は同じことを探しています。何か見つけましたか? – andyzinsser