Django – ORM values, values_list, list 결과

맨날 헷갈리는데 ORM Queryset 의 결과를 리스트로 받아 쓰는 경우가 많아 values(), values_list(), list()를 자주 쓰게 되는데 확실히 결과가 어떻게 다른지 알아보자. 말보단 코드를 짜서 결과를 보고 비교해 보는 게 확실히 이해하는데 크게 도움이 된다. result_by_orderitem = Result.objects.filter(starttime__year=s_year).order_by(“orderitem”, “-starttime”).distinct(“orderitem”).values(“orderitem”) print(result_by_orderitem) result_by_orderitem = Result.objects.filter(starttime__year=s_year).order_by(“orderitem”, “-starttime”).distinct(“orderitem”).values_list(“orderitem”) print(result_by_orderitem) result_by_orderitem = Result.objects.filter(starttime__year=s_year).order_by(“orderitem”, “-starttime”).distinct(“orderitem”).values_list(“orderitem”, flat=True) print(result_by_orderitem) result_by_orderitem = list(result_by_orderitem) print(result_by_orderitem) 예제로 짠 파이썬 코드의 결과를 보면, <QuerySet [{‘orderitem’: 278}, {‘orderitem’: 279}, {‘orderitem’: 280}, {‘orderitem’: 284}, {‘orderitem’: 287}, {‘orderitem’: 288}]><QuerySet [(278,), (279,), (280,), (284,), (287,), (288,)]><QuerySet…