0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Django】ページネーション設定

Last updated at Posted at 2023-05-18

はじめに

ブログや、ニュースサイト、ECサイト等、投稿コンテンツが多いWebサイトになると一覧表示をした際、表示制限を設けないと永遠と表示が続いてしまいます。
今回はDjangoを用い、1ページ内の表示数に制限を設けていきます。

環境

・Windows 10
・Python 3.10.6
・Django 4.2
・VS code

クラスベースビュー

views.py
from django.views import generic
from .models import PostItem

class PostList(generic.ListView):
    template_name = 'postlist
.html'
    model = PostItem
    paginate_by = 20

ここでは、クラスビューを用いて、テンプレートの指定・モデルの指定・1ページに表示するコンテンツ数の指定をします。
paginate_byの数字を変えると、1ページに表示する数が変化します。今回は20個を一度に表示します。

urls.py

urls.py
path('postlist/', PostList.as_view(), name='postlist')

urlルーティングは特に変わった記述はしません。

Templates

テンプレートでは、コンテンツの表示と前後ページのリンクの設置を行います。
表示するコンテンツをforタグを用いて表示し、ページ底部にページネーションを設置します。

ページネーション部は、長めの記述になるため、独立したTemplateとして保存してテンプレートタグ{% include '' %}で再利用するとすっきりしますね。

参考文献

Narito Blog様
https://blog.narito.ninja/detail/89

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?