장고 Summary - 6. Field Lookups-thumbnail

장고 Summary - 6. Field Lookups

자주 쓰이는 것들 위주로
300

Field lookups

Field lookup은 WHERE 절에서의 조건을 좀 더 명확하게 주기 위해 사용된다. QuerySet 메서드들 중 filter(), get(), exclude()에서 자주 볼 수 있다. 필드명 뒤에 __를 붙이고 그 바로 뒤에 lookup을 붙여주는 방식으로 사용된다.
설명을 다 적어주면 좋지만 이름만 보더라도 알 수 있는 것들이 대부분이라 대표적으로 하나만 적고 비슷한 lookup들을 언급하는 것으로 마치겠다.

exact

Product.objects.get(id__exact=14)

비슷한 lookup으로 iexact, contains, icontains, in이 있다.

gt

User.objects.filter(id__gt=4)

비슷한 lookup으로 gte, lt, lte가 있다.

startswith

Book.objects.filter(title__startswith='Denmark')

비슷한 lookup으로 istartswith, endswith, iendswith 등이 있다.

range

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))

해당 범위에 속하는 것들만 가져온다.

year

Book.objects.filter(pub_date__year=2015)

비슷한 메서드로 date, month, day, week, week_day, quarter, time, hour, minute, second 등이 있다.

isnull

Person.objects.filter(address__isnull=True)

null type으로 저장된 것들을 가져온다.

regex

Movie.objects.get(title__regex=r'^(An?|The) +')

비슷한 메서드로 iregex가 있다.


참고 사이트 :
Django document: QuerySet API reference