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="独習")
●正規表現比較
書名に数字が含まれる書籍情報を取り出す
●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、技術評論社のいずれかであるものを取得
●日付比較
刊行日が2019年である書籍情報を取り出す
books = Book.objects.filter(published__year=2019)
刊行日が2019年以前である書籍情報を取り出す
刊行日が平日であった書籍を取り出す
books = Book.objects.filter(published__week_day__range= (2,6))