전체 조회와 단일 조회
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) # 1815get()은 일치하는 항목이 하나여야 합니다. 일치하는 항목이 없으면 Book.DoesNotExist가 발생하고, 여러 개가 있으면 Book.MultipleObjectsReturned가 발생합니다. 이러한 예외는 다른 예외와 마찬가지로 처리합니다. 여기 있는 책 두 권은 Jane Austen의 작품입니다.
try:
Book.objects.get(author="Jane Austen")
except Book.MultipleObjectsReturned:
print("More than one")예외를 처리하지 않으면 해당 줄에서 스크립트 실행이 중단됩니다.
챌린지
쉬움explore.py를 다시 작성하세요.
- 모든 책의 제목을 한 줄에 하나씩 출력하세요.
Dune을 가져와Dune costs와 가격을 출력하세요:Dune costs 9.99.- 책장에 없는
Ulysses를 조회하고, 오류를 내는 대신Ulysses is not on the shelf를 출력하세요.
실행을 누르세요. 콘솔에 아홉 권의 제목이 표시된 다음 두 문장이 표시됩니다.
직접 해보기
from books.models import Book
# 1. 모든 책의 제목을 한 줄에 하나씩 출력하세요.
# 2. Dune을 가져와 가격을 출력하세요.
# 3. Ulysses를 찾으세요.
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
모델과 관리자의 모든 레슨
직접 연습해 보세요: Django 플레이그라운드