Djangoにおけるフィールドルックアップ

フィールドルックアップとは、検索メソッドに引き渡せるキーワード引数の記法のこと。

構文は

フィールド名__比較型 = 検索値

※コードはWINGSプロジェクト/発行 Django3 速習シリーズを参照

 

●大小比較

価格が3000円未満の情報を取得する

views.py

def filter(request):
books = Book.objects.filter(price__lt=3000)
return render(request, "main/book_list.html",{
"books":books
})

gt  より大きい

gte   以上

lt    未満

lte  以下

で表現できる

 

●部分一致

「独習」という文字列が含まれている情報を取り出す

books = Book.objects.filter(title__contains="独習")

 

正規表現比較

書名に数字が含まれる書籍情報を取り出す

books = Book.objects.filter(title__regex=r"[0-9]+")

 

●NULL比較

書名がNULLである書籍情報を取り出す

books = Book.objects.filter(title__isnull=True)

 

●範囲比較

刊行日が2018年1月1日~12月31日である書籍情報を取得する例

from datetime import date
 
books = Book.objects.filter(published__range=(date(2018,1,1),date(2018,12,31)))

 

●候補比較

出版社が翔泳社日経BP技術評論社のいずれかであるものを取得

 
 
books = Book.objects.filter(publisher__in=["翔泳社","日経BP","技術評論社"])

 

●日付比較

刊行日が2019年である書籍情報を取り出す

books = Book.objects.filter(published__year=2019)

刊行日が2019年以前である書籍情報を取り出す

books = Book.objects.filter(published__year__lte=2019)

刊行日が平日であった書籍を取り出す

books = Book.objects.filter(published__week_day__range= (2,6))