Django orm으로 최대값, 가장 나중에 저장된 인덱스 불러오는 방법
1. 가장 나중에 저장된 인덱스를 가져오는 query orm
>>> obj = Model.objects.latest('인덱스명')
>>> obj = Model.objects.last()
두가지 모두 가장 최근에 저장된 models 객체가 반환된다
# type 확인
>>> type(obj)
<class '프로젝트명.models.모델명'>
# 먼저 Max 를 import
from django.db.models import Max
obj = Model.objects.aggregate(컬럼명=Max('컬럼명'))
queryset이 아닌. '컬럼명'만 들어있는 dictionary 형태로 반환된다.
obj['컬럼명'] 으로 사용하면 됨.
Aggregation과 Annotation 을 이용해서 최대값, 최소값, 평균값, 총 개수까지 불러올 수 있다.
from django.db.models import Max, Min, Avg
obj = Model.objects.aggregate(컬럼명=Max('컬럼명'))
obj = Model.objects.aggregate(컬럼명=Min('컬럼명'))
obj = Model.objects.aggregate(컬럼명=Avg('컬럼명'))
* Count 사용하는법
>>> from django.db.models import Count >>> pubs = Publisher.objects.annotate(num_books=Count('book')) #책의 개수를 각 데이터마다 리턴 >>> pubs <QuerySet [<Publisher: BaloneyPress>, <Publisher: SalamiPress>, ...]> >>> pubs[0].num_books 73