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 אונליין