파이썬으로 장고(Django) 공략하기: 입문 강의를 정리한 내용입니다.

Column(Field) Lookup

  • filter, exclude, get 메소드 내에서 검색을 원하는 필드명과 field looup을 붙여서 검색한다.
  • {field명}__{조건 키워드(loopup type)}

conrains : 특정 키워드가 포함된 레코드 조회

>>> Restaurant.objects.filter(name__contains='Korea').values()

exact : 특정 키워드와 정확하게 일치하는 레코드 조회

>>> Restaurant.objects.filter(name__contains='Korean Food').values()
>>> Restaurant.objects.filter(name='Korean Food').values() # 이렇게 검색하는 것과 같은 결과

gt, gte, lt, lte : 크거나, 크거나, 작거나, 작거나 같거나한 레코드 조회

  • 해당 날짜 이전 데이터 조회, 해당 날짜 이후 데이터 조회
>>> Restaurant.objects.filter(created_at__lt='2018-01-01 00:00:00').values()
>>> Restaurant.objects.filter(created_at__gt='2018-01-01 00:00:00').values()

startswith, endswith : 특정 문자열로 시작하거나 종료되는 레코드 조회

>>> Restaurant.objects.filter(name__startswith='Korea').values()
>>> Restaurant.objects.filter(name__endswith='Food').values()

in : 여러 값을 한 번에 검색 조건으로 사용하여 레코드 조회

>>> Restaurant.objects.filter(id__in=[1,3]).values()

range : 특정 값 사이의 레코드를 조회(between의 의미)

>>> Restaurant.objects.filter(id__range=(1,3)).values()

>>> import datetime
>>> start_date = datetime.datetime(2018,12,3,0,0,0)
>>> end_date = datetime.datetime(2018,12,8,0,0,0)
>>> Restaurant.objects.filter(created_at__range=(start_date, end_date)).values()