• Skip to main content
  • Skip to secondary menu
  • Skip to primary sidebar
  • Skip to footer

AI活用エンジニアへの道

生成AI時代のエンジニアの生き方を考えるメディア(作成途中)

  • コラム
  • 生成AI
  • プログラミング
    • Python入門
    • Flask入門
    • Django入門
  • プロフィール
Home / プログラミング / Django / DjangoのListViewのカスタマイズ(順番を入れ替えたり絞込をするget_querysetのカスタマイズ)

DjangoのListViewのカスタマイズ(順番を入れ替えたり絞込をするget_querysetのカスタマイズ)

1 get_querysetをカスタマイズしてリストビューのオブジェクトを操作する
2 関連記事

以前、リストビューの使用方法についての記事を投稿したが、今回はそのリストビューで表示する要素の順番を入れ替えたり(sortしたり)、絞込を行う簡単な方法について記述していく。


get_querysetをカスタマイズしてリストビューのオブジェクトを操作する

ListViewを継承して新たにリストビューのクラスを作成した際、get_queryset()メソッドをオーバライドすることで、ListViewで取得するオブジェクトを絞り込んだり、順序を変えたりすることができる。

例えば以下のように利用する。

  • views.py
from django.views.generic import ListView
from blog.models import Post
from django.utils import timezone
class PostListView(ListView):
    model = Post

    def get_queryset(self):
        return Post.objects.filter(published_date__lte=timezone.now()).order_by('-published_date')

上のようにすると、get_querysetでPostモデルが、published_date <= timezone.now()で絞り込まれ、order by published_date descでソートされる。

また、以下のように定義すると

  • views.py
    def get_queryset(self):
        return Post.objects.filter(published_date__isnull=True).order_by('created_date')

published_date is Null, order by created_dateとしてリストを取得するようになる。

ListViewはDjangoでも特によく利用するビューのなので是非利用しましょう

関連記事

現役エンジニアがDjangoに関する本を5つ紹介
現役エンジニアがDjangoに関する本を5つ紹介
WindowsでDjango、Anaconda、VSCodeのインストールとDjangoを開発する環境の構築をする
WindowsでDjango、Anaconda、VSCode…
MacでDjango、Anaconda、VSCodeのインストールとDjangoを開発する環境の構築をする
MacでDjango、Anaconda、VSCodeのインス…
DjangoのFormに初期値を設定する方法
DjangoのFormに初期値を設定する方法
DjangoでModelのsave前後で処理を行うSignalのpre_save, post_saveの使い方
DjangoでModelのsave前後で処理を行うSigna…
DjangoのModelにSlugFieldを利用する。その利用方法と
DjangoのModelにSlugFieldを利用する。その…

Primary Sidebar

人気記事

  • 1
    ITエンジニアとしてスキルを高めるためのUdemy講…
  • 2
    PyCharm,IntelliJのおすすめプラグイン一覧
  • no image 3
    Python未経験だが、フリーランスの案件に採用さ…
  • 4
    アメリカのシリコンバレーでプログラミングを無…

特集記事

  • 1
    Cursorの使用のポイントとコツ(コード補完、イ…
  • 2
    ITエンジニアとしてスキルを高めるためのUdemy講…

目次

1 get_querysetをカスタマイズしてリストビューのオブジェクトを操作する
2 関連記事
StartCode ロゴ
AI時代のエンジニアを最速で育てる
法人向けIT研修で即戦力を育成しています。詳しくはお問い合わせください。
▶ 詳細はこちら
Django講座
【Udemy】Django入門講座(0からDjangoを学習: Python講座つき)
受講生6500人ほどの人気講座。<strong>View, Template, Model, Cla...
詳細 ▶

Footer

利用規約