Menu
CoddyTech

All ו-Get

חלק מהיחידה מודלים וממשק הניהול במסלול ה-Django של Coddy. שיעור 8 מתוך 23.

לפני שדף יכול להציג ספר, הקוד שלך צריך לקרוא אותו בחזרה. 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 במקום שהתוכנית תקרוס.

לחצו על Run. הקונסולה מציגה את תשע הכותרות, ואז את שני המשפטים.

נסו בעצמכם

from books.models import Book

# 1. הדפס את הכותרת של כל ספר, אחת בכל שורה.

# 2. אחזר את Dune והדפס את מחירו.

# 3. חפש את Ulysses.
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה מודלים וממשק הניהול

תרגלו בעצמכם: Django אונליין