質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

2996閲覧

Django paginate_byの設定方法

Mario_11

総合スコア95

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/09/01 04:42

Django paginate_byの設定方法を教えていただきたいです。

こちらのサイトを参考にしています。
現在、タグリストのページを作成しており、そこのページでpaginate_byを活用し、複数のページを作りたいです。

エラーは出ていないのですが、ページの数字が出ておらず、矢印だけが出ている状態です。

python

1#views.py 2 3class TagsView(View): 4 """リスト一覧""" 5 paginate_by = 15 6 7 def get(self, request, *args, **kwargs): 8 context = {} 9 context['all_tag_list'] = Tag.objects.all().annotate(tag_count=Count('taggit_taggeditem_items')).order_by('-tag_count') 10 return render(request, 'app/tag_list.html', context) 11

タグリストのページ

html

1{% extends "app/base.html" %} 2{% block content %} 3{% load static %} 4<link href="{% static 'app/css/tag_list.css' %}" rel="stylesheet" type="text/css"> 5<h2> 6 <svg width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-tags-fill" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> 7 <path fill-rule="evenodd" d="M3 1a1 1 0 0 0-1 1v4.586a1 1 0 0 0 .293.707l7 7a1 1 0 0 0 1.414 0l4.586-4.586a1 1 0 0 0 0-1.414l-7-7A1 1 0 0 0 7.586 1H3zm4 3.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z"/> 8 <path d="M1 7.086a1 1 0 0 0 .293.707L8.75 15.25l-.043.043a1 1 0 0 1-1.414 0l-7-7A1 1 0 0 1 0 7.586V3a1 1 0 0 1 1-1v5.086z"/> 9 </svg> 10 タグ一覧 11</h2> 12<hr> 13<div class="tags"> 14 <div class="card-columns"> 15 <ul> 16 {% for tags in all_tag_list %} 17 <div class="card"> 18 <li> 19 <a href="{% url 'app:tags_post'%}?tag={{ tags }}"> 20 <svg width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-tags-fill" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> 21 <path fill-rule="evenodd" d="M3 1a1 1 0 0 0-1 1v4.586a1 1 0 0 0 .293.707l7 7a1 1 0 0 0 1.414 0l4.586-4.586a1 1 0 0 0 0-1.414l-7-7A1 1 0 0 0 7.586 1H3zm4 3.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z"/> 22 <path d="M1 7.086a1 1 0 0 0 .293.707L8.75 15.25l-.043.043a1 1 0 0 1-1.414 0l-7-7A1 1 0 0 1 0 7.586V3a1 1 0 0 1 1-1v5.086z"/> 23 </svg>{{ tags }} 24 ({{ tags.tag_count }}) 25 </a> 26 </li> 27 </div> 28 {% endfor %} 29 </ul> 30 </div> 31<div class="page col-9"> 32{% include "app/_pagination.html" %} 33</div> 34</div> 35{% endblock %} 36

_pagination.html

html

1 2{% load item_extras %} 3<ul class="pagination"> 4 {% if page_obj.has_previous %} 5 <li class="page-item pagination-prev"> 6 <a class="page-link" href="?{% url_replace request 'page' page_obj.previous_page_number %}">&laquo;</a> 7 </li> 8 {% else %} 9 <li class="disabled page-item pagination-next"> 10 <span class="page-link">&laquo;</span> 11 </li> 12 {% endif %} 13 {% for page in page_obj.paginator.page_range %} 14 {% if page %} 15 {% ifequal page page_obj.number %} 16 <li class="active page-item"> 17 <span class="page-link">{{ page }} 18 <span class="page-link sr-only">(current)</span> 19 </span> 20 </li> 21 {% else %} 22 <li class="page-item"> 23 <a class="page-link" href="?{% url_replace request 'page' page %}">{{ page }}</a> 24 </li> 25 {% endifequal %} 26 {% endif %} 27 {% endfor %} 28 {% if page_obj.has_next %} 29 <li class="page-item pagination-next"> 30 <a class="page-link" href="?{% url_replace request 'page' page_obj.next_page_number %}">&raquo;</a> 31 </li> 32 {% else %} 33 <li class="disabled page-item pagination-next"> 34 <span class="page-link ">&raquo;</span> 35 </li> 36 {% endif %} 37</ul>

python

1#item_extras.py 2from django import template 3 4register = template.Library() 5 6@register.simple_tag 7def url_replace(request, field, value): 8 dict_ = request.GET.copy() 9 dict_[field] = value 10 return dict_.urlencode()

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ページネーションする場合は、ListViewを使用する必要があります。

python

1# views.py 2form django.views.generic import ListView 3form .models import Tag 4class TagsView(ListView): 5 model = Tag 6 paginate_by = 15 7 8 def def get_queryset(self): 9 return Tag.objects.all().annotate( 10 tag_count=Count('taggit_taggeditem_items') 11 ).order_by('-tag_count')

html

1<!-- app/templates/app/tag_list.html --> 2{% for tag in object_list %} 3 {{ tag }} 4{% endfor %}

投稿2020/09/01 08:04

hasami

総合スコア1277

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Mario_11

2020/09/01 11:06

ListViewを使わないといけないのですね、、助かりました! ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問