🔍 Django ORM Field Lookups 완벽 정리

2025. 5. 14. 14:43·기술블로그-Django편
목차
  1. 🔍 Django ORM Field Lookups 완벽 정리
  2. ✅ Field Lookup 이란?
  3. 📌 자주 사용하는 Lookups 정리
  4. 🧪 실전 예제 모음
  5. 🧠 실무 팁
  6. ✅ 마무리 요약

🔍 Django ORM Field Lookups 완벽 정리

🔗 공식 문서: Django Field Lookups


✅ Field Lookup 이란?

Django ORM에서 .filter(), .exclude() 등과 함께 사용되어 모델 필드에 조건을 부여하는 방법입니다.

✅ 문법 구조:

Model.objects.filter(필드명__lookup=값)

예:

Book.objects.filter(title__icontains="python")

→ title 필드에 "python"이 포함된 모든 Book 객체를 조회


📌 자주 사용하는 Lookups 정리

Lookup 표현 의미 예시

exact 정확히 일치 name__exact="Alice"
iexact 대소문자 무시 정확 일치 name__iexact="alice"
contains 포함 title__contains="Python"
icontains 대소문자 무시 포함 title__icontains="python"
in 리스트 내 포함 여부 id__in=[1, 3, 5]
gt 보다 큼 (>) price__gt=10000
gte 크거나 같음 (>=) price__gte=10000
lt 보다 작음 (<) price__lt=5000
lte 작거나 같음 (<=) price__lte=5000
startswith 시작 문자열 name__startswith="Lee"
istartswith 대소문자 무시 시작 name__istartswith="lee"
endswith 끝 문자열 name__endswith="Kim"
iendswith 대소문자 무시 끝 name__iendswith="kim"
range 범위 검색 date__range=(start, end)
isnull NULL 여부 email__isnull=True
regex 정규표현식 매칭 phone__regex=r'^010'

🧪 실전 예제 모음

# 제목에 'python' 포함 (대소문자 구분 없이)
Book.objects.filter(title__icontains='python')

# 가격이 1만 원 이상인 상품
Product.objects.filter(price__gte=10000)

# 특정 날짜 범위에 생성된 게시글
Post.objects.filter(created_at__range=['2024-01-01', '2024-12-31'])

# last_login 필드가 NULL인 유저
User.objects.filter(last_login__isnull=True)

# 이름이 'Kim'으로 끝나는 유저
User.objects.filter(name__iendswith="kim")

🧠 실무 팁

  • icontains, in, range, isnull은 실무에서 매우 자주 사용됨
  • __(더블 언더스코어)를 기준으로 lookup 표현식을 구성함
  • 복합 조건은 .filter(Q(...)) 와 함께 &, | 연산자로 조합 가능

예:

from django.db.models import Q
User.objects.filter(Q(name__icontains="kim") | Q(email__icontains="gmail.com"))

✅ 마무리 요약

상황 추천 Lookup

문자열 검색 contains, icontains
숫자 비교 gt, gte, lt, lte
범위 range
null 여부 확인 isnull
시작/끝 문자열 startswith, endswith
리스트 포함 in

정확하고 다양한 조건을 조합해 Django ORM의 강력한 필터링 기능을 100% 활용해 보세요! ✅

'기술블로그-Django편' 카테고리의 다른 글

🧱 Django Database Model 완전 정복  (0) 2025.05.14
💻 Django 프로젝트 세팅 완전 정복!  (0) 2025.05.14
🔍 Django ORM: get() vs filter() 차이점 완벽 정리  (0) 2025.05.14
🔧 Django에서 HTML 폼으로 DELETE 요청 처리하기 — Middleware 활용법  (0) 2025.05.14
🔄 Django에서 access_count += 1 vs F("access_count") + 1 완전 비교  (0) 2025.05.14
  1. 🔍 Django ORM Field Lookups 완벽 정리
  2. ✅ Field Lookup 이란?
  3. 📌 자주 사용하는 Lookups 정리
  4. 🧪 실전 예제 모음
  5. 🧠 실무 팁
  6. ✅ 마무리 요약
'기술블로그-Django편' 카테고리의 다른 글
  • 🧱 Django Database Model 완전 정복
  • 💻 Django 프로젝트 세팅 완전 정복!
  • 🔍 Django ORM: get() vs filter() 차이점 완벽 정리
  • 🔧 Django에서 HTML 폼으로 DELETE 요청 처리하기 — Middleware 활용법
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (787)
      • Python (32)
      • 프로젝트 (110)
      • 과제 (25)
      • Database (40)
      • 멘토링 (11)
      • 특강 (37)
      • 기술블로그 (41)
      • 기술블로그-Fastapi편 (33)
      • 기술블로그-Django편 (153)
      • 기술블로그-Flask편 (36)
      • AI 분석 (5)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (77)
      • Fastapi (16)
      • 연예 (14)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    btsreunion
    americanlaw
    hotcoffeecase
    college reunions
    lawsuitculture
    trumpmuskclash
    RM
    life reflection
    classaction
    travel ban
    homebartrend
    뷔
    global politics
    chatgpterror
    bts
    livebroadcast
    youngprofessionals
    gpterror
    chinanightlife
    remittance
    self-growth
    btsjungkook
    titaniumcase
    urbantrends
    americaparty
    btsdischarge
    btscomeback
    newpoliticalparty
    smartphonedurability
    basalcellcarcinoma
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
🔍 Django ORM Field Lookups 완벽 정리

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.