Djangoでのページネーション用テンプレートを作成し、いろいろなテンプレート内で使いまわしたいです。
<ul class="pagination"> {% if obj.has_previous %} <li class="page-item"> <a class="page-link" href="{% url 'page1' %}">«first</a> </li> <li class="page-item"> <a class="page-link" href="{{obj.previous_page_number}}">«prev</a> </li> {% endif %} {% for num in obj.paginator.page_range %} {% if obj.number == num %} <li class="page-item active"><a class="page-link" href="#!">{{num}}</a> </li> {% else %} <li class="page-item"><a class="page-link" href="{% url 'page1' %}/{{num}}">{{num}}</a> </li> {% endif %} {% endfor %} {% if obj.has_next %} <li class="page-item"> <a class="page-link" href="{% url 'page1' %}/{{obj.next_page_number}}">next»</a> </li> <li class="page-item"><a class="page-link" href="{% url 'page1' %}/{{obj.paginator.num_pages}}">last»</a> </li> {% endif %} </ul>
以上のようなHTMLを作成しているのですが、上記のようなページ指定の仕方だとpage1以外では使うことができません。
urls.py
1urlpatterns = [ 2 path('page1', views.page1, name='page1'), 3 path('page1/<int:num>', views.page1, name='page1'), 4 path('page2', views.page2, name='page2'), 5 path('page2/<int:num>', views.page2, name='page2'), 6 ]
上記のように、URLの中でページ番号を指定している場合、ページネーション用のテンプレートを使いまわすことはできないでしょうか?
HTML内でのhref={% url 'page1' %}
の部分をどう書くべきかがわからないです。
こちらのサイトを参考に、HTML内でページを指定している箇所を、href="?page={{ num }}"
としてみたのですが、URLがhttp://localhost/page1/1?page=1
のようになってしまいました。
上記のようなURLで指定したい場合は、それぞれのテンプレートに直接ページネーションの設定をするということでしょうか?
ご教示いただけますと幸いです。よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー