Menu
CoddyTech

전체 조회와 단일 조회

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

페이지에 책을 표시하려면 먼저 코드에서 책을 읽어 와야 합니다. Book.objects.all()은 반복문으로 순회할 수 있는 목록과 비슷한 객체인 QuerySet을 반환하며, 각 항목은 필드가 속성으로 포함된 Book입니다. get()은 정확히 하나의 행을 가져옵니다.

for book in Book.objects.all():
    print(book.author, book.year)

emma = Book.objects.get(title="Emma")
print(emma.year)   # 1815

get()은 일치하는 항목이 하나여야 합니다. 일치하는 항목이 없으면 Book.DoesNotExist가 발생하고, 여러 개가 있으면 Book.MultipleObjectsReturned가 발생합니다. 이러한 예외는 다른 예외와 마찬가지로 처리합니다. 여기 있는 책 두 권은 Jane Austen의 작품입니다.

try:
    Book.objects.get(author="Jane Austen")
except Book.MultipleObjectsReturned:
    print("More than one")

예외를 처리하지 않으면 해당 줄에서 스크립트 실행이 중단됩니다.

challenge icon

챌린지

쉬움

explore.py를 다시 작성하세요.

  1. 모든 책의 제목을 한 줄에 하나씩 출력하세요.
  2. Dune을 가져와 Dune costs와 가격을 출력하세요: Dune costs 9.99.
  3. 책장에 없는 Ulysses를 조회하고, 오류를 내는 대신 Ulysses is not on the shelf를 출력하세요.

실행을 누르세요. 콘솔에 아홉 권의 제목이 표시된 다음 두 문장이 표시됩니다.

직접 해보기

from books.models import Book

# 1. 모든 책의 제목을 한 줄에 하나씩 출력하세요.

# 2. Dune을 가져와 가격을 출력하세요.

# 3. Ulysses를 찾으세요.
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

모델과 관리자의 모든 레슨

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