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.)