본문 바로가기
Django

Django orm으로 최대값, 가장 나중에 저장된 인덱스 불러오는 방법

by 이농이능 2018. 4. 18.

1. 가장 나중에 저장된 인덱스를 가져오는 query orm


>>> obj = Model.objects.latest('인덱스명')   

>>> obj = Model.objects.last()


두가지 모두 가장 최근에 저장된 models 객체가 반환된다


# type 확인

>>> type(obj)

<class '프로젝트명.models.모델명'>



2. 최대값을 가져오는 orm


# 먼저 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



'Django' 카테고리의 다른 글

centos7+django+nginx+uwsgi  (0) 2018.05.24
django + mariaDB  (0) 2018.04.16
django 에서 bulk insert  (0) 2018.04.02
django fliter 에다 list 넣기  (0) 2018.03.29
django query filter, value, distinct  (0) 2018.03.28