1️⃣ QuerySet이 반환되는 경우의 주요 method(이전 편 참조)
2️⃣ QuerySet이 반환되지 않는 경우의 주요 method(이전 편 참조)
3️⃣ filter()와 get()의 차이점
👉 QuerySet method를 다루면서 instance내에 있는 해당하는 정보를 얻고 싶어 filter()와 get() method를 통해 불러 보려 시도하였다. 하지만 get() method로는 get().(key)를 통해 불러 올 수 있었으나, filter() method로는 filter().(key)를 통해 시도하였으나, error가 나며 불러오지 못했다. filter로는 불러올 수 있는 방법이 없는 지 알아보면서 해당 내용을 정리하게 되었다.
그러면 어떻게 하면 원하는 정보인 korean_name을 불러 올 수 있을까?In : Product.objects.filter(id=1) Out : <QuerySet [<Product: Product object (1)>]> >> Product.objects.filter(id=1).korean_name Traceback (most recent call last): File "<console>", line 1, in <module>
In : for product in Product.objects.filter(id=1): print(product.korean_name) Out : 나이트로 바닐라 크림
이렇게 간단하게 결과 값을 얻을 수 있다.In : Product.objects.get(id=1).korean_name Out : '나이트로 바닐라 크림'
filter()나 get() 원하는 sorting을 할 수 있으나, filter는 범위를 선택하는 것으로 확인이 되고 get()은 원하는 하나를 선택해서 사용하는 것으로 확인이 된다. 어느 key에 해당하는 Query들을 sorting하고 싶은 경우는 filter()를 쓰고, 딱 명확한 값을 구하고 싶을 때면 get()을 사용하면 되겠다.