First written: 22-11-21
Uploaded: 22-11-28
Last modified: 23-02-27
Field lookup은 WHERE 절에서의 조건을 좀 더 명확하게 주기 위해 사용된다. QuerySet 메서드들 중 filter()
, get()
, exclude()
에서 자주 볼 수 있다. 필드명 뒤에 __
를 붙이고 그 바로 뒤에 lookup을 붙여주는 방식으로 사용된다.
설명을 다 적어주면 좋지만 이름만 보더라도 알 수 있는 것들이 대부분이라 대표적으로 하나만 적고 비슷한 lookup들을 언급하는 것으로 마치겠다.
Product.objects.get(id__exact=14)
비슷한 lookup으로 iexact
, contains
, icontains
, in
이 있다.
User.objects.filter(id__gt=4)
비슷한 lookup으로 gte
, lt
, lte
가 있다.
Book.objects.filter(title__startswith='Denmark')
비슷한 lookup으로 istartswith
, endswith
, iendswith
등이 있다.
import datetime
start_date = datetime.date(2020, 3, 5)
end_date = datetime.date(2022, 11, 21)
Student.objects.filter(join_date__range=(start_date, end_date))
해당 범위에 속하는 것들만 가져온다.
Book.objects.filter(pub_date__year=2015)
비슷한 메서드로 date
, month
, day
, week
, week_day
, quarter
, time
, hour
, minute
, second
등이 있다.
Person.objects.filter(address__isnull=True)
null
type으로 저장된 것들을 가져온다.
Movie.objects.get(title__regex=r'^(An?|The) +')
비슷한 메서드로 iregex
가 있다.