장고의 Model을 통해서 데이터베이스의 데이터를 Queryset으로 불러올 수 있다. 여기서 우리는 Model API를 통해 Queryset을 원하는 조건으로 불러올 수 있다.
해당 모델 테이블의
모든 데이터
조회all() #예시 Post.objects.all()
특정 조건
에 맞는모든 데이터
조회filter() #예시 Post.objects.filter({필드}{필드조건옵션}={조건})
특정 조건을 제외
한모든 데이터
조회exclude() #예시 Post.objects.exclude({필드}{필드조건옵션}{조건})
특정 조건으로 정렬
된 데이터 조회
기본값은 내림차순 / -를 붙이면 오름차순order_by() #예시 Post.objects.order_by({필드}) Post.objects.order_by({-필드})
Queryset에 있는
모든 모델 데이터
의모든 정보
를 사전형으로 갖는 리스트로 반환values() #예시 Post.objects.all().values()
조건
에 맞는하나의 데이터
조회get() #예시 Post.objects.get({조건})
하나의 데이터
를생성
하고 해당 모델 데이터를 반환create() #예시 Post.objects.create({필드}={값})
조건
에 맞는데이터를 조회
,해당 데이터가 없다면
새로 생성
후 새로 생성된 모델 데이터를 반환get_or_create() #예시 Post.objects.get_or_create({필드}={값})
주어진 필드 기준으로
가장 최신
의 모델 데이터를 반환latest() #예시 Post.objects.latest({필드})
Queryset의
가장 첫번 째
모델 데이터를 반환, 만약 정렬하지 않은 Queryset인 경우 pk를 기준으로 정렬 후 반환first() #예시 Post.objects.order_by({필드}).first()
Queryset의
가장 마지막
모델 데이터를 반환last() #예시 Post.objects.order_by({필드}).last()
Queryset에 데이터가 있다면 True 반환
exists() #예시 Post.objects.get({조건}).exists()
Queryset의
데이터 개수
를정수
로 반환count() #예시 Post.objects.all().count()
데이터를 수정할 때 사용하며,
여러 데이터 또는 필드
를 한 번에수정
할 수 있음
수정 후 수정된 데이터의 개수를 정수로 반환update() #예시 Post.objects.filter({조건}).update({변경내용})
대소문자를 구분
하여문자열 포함
여부 확인#예시 Post.objects.get({필드}__contains={값})
대소문자를 구분하지 않고
문자열 포함
여부 확인#예시 Post.objects.get({필드}__icontains={값})
반복 가능한 객체 안에서의 포함 여부를 확인
#예시 Post.objects.filter({필드}__in=[{값1}, {값2}, {값3}])
초과
여부 확인#예시 Post.objects.filter({필드}__gt={값})
2.5. __gte
이상
여부 확인#예시 Post.objects.filter({필드}__gte={값})
미만
여부 확인#예시 Post.objects.filter({필드}__lt={값})
이하
여부 확인#예시 Post.objects.filter({필드}__lte={값})
대소문자를 구분
하여해당 문자열로 시작
하는지 여부 확인#예시 Post.objects.filter({필드}__startswith={값})
대소문자를 구분하지 않고
해당 문자열로 시작
하는지 여부 확인#예시 Post.objects.filter({필드}__istartswith={값})
대소문자를 구분
하여해당 문자열로 끝
나는지 여부 확인#예시 Post.objects.filter({필드}__endswith={값})
대소문자를 구분하지 않고
해당 문자열로 끝
나는지 여부 확인#예시 Post.objects.filter({필드}__iendswith={값})
range로 제시하는
범위 내에 포함
되는지 확인#예시 Post.objects.filter({필드}__range={시작값}, {끝값})
해당 필드가
Null
인지 여부를 확인#예시 Post.objects.filter({필드}__isnull=True)