Menu
CoddyTech

행 정렬하기

Coddy Django 여정의 모델과 관리자 섹션에 포함된 레슨. 23개 중 11번째.

가장 저렴한 책, 가장 최신 책 또는 가장 오래된 책부터 최신 책까지 모든 제목을 찾으려면 먼저 책을 정렬해야 합니다. order_by()는 필드를 기준으로 하나의 QuerySet을 정렬하고, Meta의 ordering은 모든 QuerySet을 정렬합니다. 마이너스 기호를 붙이면 큰 값부터 작은 값 순으로 정렬됩니다. first()는 첫 번째 행을 반환하며, 행이 없으면 None을 반환하므로 get()과 달리 예외를 발생시키지 않습니다.

Book.objects.order_by("-year").first()   # <Book: SPQR by Mary Beard>
Book.objects.order_by("-price").values_list("author", flat=True)
# <QuerySet ['Mary Beard', 'Umberto Eco', ...]>

values_list("author", flat=True)는 Book 객체를 건너뛰고 값 자체를 반환합니다. 예를 들면 'Mary Beard'입니다. flat=True가 없으면 각 값은 항목이 하나뿐인 튜플로 반환됩니다. 예를 들면 ('Mary Beard',)입니다.

challenge icon

챌린지

중급

explore.py를 다시 작성하여 두 줄을 출력하세요.

  1. Cheapest:와 가장 저렴한 책의 제목.
  2. Titles by year:와 가장 오래된 책부터 모든 책 제목의 목록. 목록 자체를 출력하세요.

실행을 누르면 콘솔에 Cheapest: Pride and Prejudice가 표시되고, 이어서 Titles by year: ['Pride and Prejudice', 'Emma', 'The Murder of Roger Ackroyd', 'The Hobbit', 'Foundation', 'Dune', 'The Name of the Rose', 'Neuromancer', 'SPQR']가 표시됩니다.

직접 해보기

from books.models import Book

# 1. 최저가: 가장 저렴한 책의 제목

# 2. 연도별 제목: 모든 책의 제목을 오래된 책부터 리스트로

모델과 관리자의 모든 레슨

직접 연습해 보세요: Django 플레이그라운드