공식문서: https://docs.djangoproject.com/en/4.1/topics/db/queries/#retrieving-specific-objects-with-filters
테이블 이름.objects.filter(테이블 컬럼=값)
테이블 내 컬럼 = 해당 값
인 모델들을 반환
테이블 이름.objects.filter(테이블 컬럼=값)
테이블 내 컬럼 != 해당 값
인 모델들을 반환
__옵션
을 붙여서 검색한다i
가 붙으면 대소문자를 구분하지 않는다는 의미이다Entry.objects.filter(컬럼__exact=문자열)
Entry.objects.filter(컬럼__exact=None)
정확히 문자열이 컬럼의 값과 일치하는 모델을 반환한다
Entry.objects.filter(컬럼__contains=문자열)
컬럼의 값이 해당 문자열을 포함하는 모델을 반환한다
Entry.objects.filter(id__in=[1, 2])
: SELECT ... WHERE id IN (1, 2);
sql의 IN
과 같은 역할로 iterable한 객체가 뒤에 올 수 있다
Entry.objects.filter(id__gt=1)
: SELECT ... WHERE id > 1;
각각 >, >=, <, <=
을 의미한다
Entry.objects.filter(name__startswith='sen')
파이썬의 문자열 메서드(https://velog.io/@dahyen0o/파이썬-문자열-내-특정-문자열-찾기 참고)와 같은 역할을 한다
import datetime
start_date = datetime.date(2000, 1, 1)
end_date = datetime.date(2000, 1, 31)
Entry.objects.filter(created_at__range=(start_date, end_date))
해당 범위에 해당하는 모델을 찾는다