מיון רשומות
חלק מהיחידה מודלים וממשק הניהול במסלול ה-Django של Coddy. שיעור 11 מתוך 23.
הספר הזול ביותר, הספר החדש ביותר, כל הכותרים מהישן לחדש: כל אחד מהם הוא שאלה על סדר. order_by() ממיינת QuerySet אחד לפי שדה, כפי ש-ordering בתוך Meta עושה עבור כולם, וסימן מינוס ממיין מהגבוה לנמוך. 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() מדלגת על אובייקטי Book ומחזירה את הערכים של שדה אחד. בלי flat=True, כל ערך מופיע בתוך טאפל עם איבר אחד, כמו ('Mary Beard',).
אתגר
בינוניכתבו מחדש את explore.py כך שידפיס שתי שורות:
Cheapest:ואת הכותרת של הספר הזול ביותר.Titles by year:ורשימה של כל הכותרות, מהספר הישן ביותר לחדש ביותר.
לחצו על Run. במסוף מופיעים Cheapest: Pride and Prejudice ו-Titles by year: ['Pride and Prejudice', 'Emma', ...].
נסו בעצמכם
from books.models import Book
# 1. הזול ביותר: שם הספר הזול ביותר
# 2. שמות ספרים לפי שנה: כל שמות הספרים, מהספר הישן ביותר תחילה, כרשימה
כל השיעורים ביחידה מודלים וממשק הניהול
תרגלו בעצמכם: Django אונליין