행 정렬하기
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',)입니다.
챌린지
중급explore.py를 다시 작성하여 두 줄을 출력하세요.
Cheapest:와 가장 저렴한 책의 제목.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 플레이그라운드