first()와 get()
Queryset Method
Queryset
메소드는 모든 객체들을 불러오는.all()
, 조건에 만족하는 객체들을 불러주는 .filter()
등이 존재합니다. 이러한 Queryset
메소드는 QuerySet
로 묶여서 반환 됩니다.
User.objects.all() #<QuerySet [User:User object (1)]>
오늘 포스트에서 정리할 first()
와 get()
은 QuerySet
으로 반환되지 않고 다른 값들을 반환해줍니다.
get()
get(**kwargs)
는 하나의 객체를 찾을 때 사용하는 Method
입니다. 만약 .get(id=10)
를 했을 때 없는 값을 찾을려고 하면 Matching query
가 존재하지 않아서 오류가 발생합니다.
get()
은 다른 용도도 존재합니다. 만약 QuerySet
이 한개의 객체만 가지고 있으면 그 객체를 꺼내오게 됩니다.
first()
first()
는 QuerySet
에서 첫번째 객체를 반환해줍니다. 만약 비어있는 QuerySet
이면 None
을 반환해줍니다.
first()
와 반대되는 기능을 가진 last()
도 존재합니다.
aggregate()
aggreate()
메소드는 딕셔너리로 aggreate
값(sums
,average
)을 반환해줍니다.
query = Product.objects.aggregate(Count('name')) # {'name__count' : 76}
또는 keyword argument
로 인자로 주면 딕셔너리의 이름을 짓어주게 됩니다.
query = Product.objects.aggregate(cnt=Count('name')) # {'cnt' : 76}
Author And Source
이 문제에 관하여(first()와 get()), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jun17114/first와-get저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)