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

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

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

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

Python

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

HTML

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

Q&A

解決済

1回答

1443閲覧

【Django】ページネーションが反映されない

minari766

総合スコア17

Django

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

Python

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

HTML

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

0グッド

1クリップ

投稿2021/04/19 22:46

###実現したいこと
Djangoで記事投稿型のサイトを作成しています。
トップページに投稿記事一覧を表示させており、お気に入りボタンを押した場合、ユーザープロフィール画面でお気に入りを押した記事だけが纏めて見られるようにしています。

トップページの投稿記事一覧については10記事毎にページを切り替えられるようなっているのですが、お気に入り記事一覧に同じページネーションのコードを追加しても機能が適用されません。

イメージ説明

スペルミス等何度も確認しましたが間違いは見つからず、皆様のご知見いただけますと幸いです。

###各種コード
必要と思う部分のみ記載しております。
情報に不足ありましたらご指摘いただけますと幸いです。

HTML (トップページ)
app/index.html

HTML

1<ul class="pagination justify-content-center"> 2 {% if page_obj.has_previous %} 3 <li class="page-item"> 4 <a class="page-link" href="?{% url_replace request 'page' page_obj.previous_page_number %}"> 5 <span aria-hidden="true">&laquo;</span> 6 </a> 7 </li> 8 {% endif %} 9 {% for num in page_obj.paginator.page_range %} 10 {% if page_obj.number == num %} 11 <li class="page-item active"> 12 <a class="page-link" href="#!"> 13 {{ num }} 14 </a> 15 </li> 16 {% else %} 17 <li class="page-item"> 18 <a class="page-link" href="?{% url_replace request 'page' num %}"> 19 {{ num }} 20 </a> 21 </li> 22 {% endif %} 23 {% endfor %} 24 {% if page_obj.has_next %} 25 <li class="page-item"> 26 <a class="page-link" href="?{% url_replace request 'page' page_obj.next_page_number %}"> 27 <span aria-hidden="true">&raquo;</span> 28 </a> 29 </li> 30 {% endif %} 31</ul>

HTML お気に入り記事一覧
account/profile.html

HTML

1<ul class="pagination justify-content-center"> 2 {% if page_obj_mypost.has_previous %} 3 <li class="page-item"> 4 <a class="page-link" href="?page={{ page_obj_mypost.previous_page_number }}"> 5 <span aria-hidden="true">&laquo;</span> 6 </a> 7 </li> 8 {% endif %} 9 {% for num in page_obj_mypost.paginator.page_range %} 10 {% if page_obj_mypost.number == num %} 11 <li class="page-item active"> 12 <a class="page-link" href="#!"> 13 {{ num }} 14 </a> 15 </li> 16 {% else %} 17 <li class="page-item"> 18 <a class="page-link" href="?page={{ num }}"> 19 {{ num }} 20 </a> 21 </li> 22 {% endif %} 23 {% endfor %} 24 {% if page_obj_mypost.has_next %} 25 <li class="page-item"> 26 <a class="page-link" href="?page={{ page_obj_mypost.next_page_number }}"> 27 <span aria-hidden="true">&raquo;</span> 28 </a> 29 </li> 30 {% endif %} 31</ul>

app/views.py

python

1class IndexView(View): 2 def paginate_queryset(self, request, queryset, count): 3 paginator = Paginator(queryset, count) 4 page = request.GET.get('page') 5 try: 6 page_obj = paginator.page(page) 7 except PageNotAnInteger: 8 page_obj = paginator.page(1) 9 except EmptyPage: 10 page_obj = paginator.page(paginator.num_pages) 11 12 13 return page_obj

###備考
トップページとお気に入り画面のHTMLは別のアプリケーションにフォルダに入っています。
トップページ:app
お気に入り画面:account
これが反映されない原因でしょうか。

お手数ですがご回答の程よろしくお願いします。

###開発環境
HTML5
Bootstrap 4.7.0
Python 3.6.3
Django 2.2.16

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

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

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

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

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

guest

回答1

0

自己解決

view.pyにて、index.htmlのpaginationに関する変数名と、profile.htmlのpaginationに関する変数名が違っていたことが原因でした。

変数名は揃えなければいけませんね・・

投稿2021/04/30 05:25

minari766

総合スコア17

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問