עדכון ומחיקה
חלק מהיחידה מודלים וממשק הניהול במסלול ה-Django של Coddy. שיעור 12 מתוך 23.
המחירים משתנים וספרים יורדים מהמדף. כדי לשנות ספר אחד, מגדירים את המאפיין שלו וקוראים ל־save(); בלי save(), הטבלה שומרת את הערך הישן. כדי לשנות כמה שורות בבת אחת, קוראים ל־update() על QuerySet. הפעולה מריצה UPDATE אחד ומחזירה כמה שורות השתנו. delete() פועלת באותו אופן ומחזירה כמה שורות נמחקו, בסך הכול ולפי מודל:
Book.objects.filter(year__lt=1900).update(price="5.00") # 2
Book.objects.filter(price__gt=14).delete() # (1, {'books.Book': 1})שתי הפעולות משפיעות בדיוק על השורות שב־QuerySet, לכן מסננים קודם. Book.objects.update(is_read=True) מסמנת את כל הספרים, ואף אחת מהפעולות לא מבקשת אישור לפני שהיא פועלת.
אתגר
קלב-explore.py, מעל ה-print האחרון:
- הספר
Duneבמבצע: יש להגדיר את מחירו ל-7.99. - יש לסמן כל ספר מאת
Jane Austenכספר שנקרא, בשאילתה אחת. - יש למחוק כל ספר מסתורין, בשאילתה אחת.
לחצו על Run. במסוף מופיע 7 books on the shelf, ובכרטיסייה Data מופיע Dune במחיר 7.99, בלי ספרי מסתורין.
נסו בעצמכם
from books.models import Book
# 1. Dune במבצע: הגדירו את מחירו ל-7.99.
# 2. סמנו כל ספר של Jane Austen כנקרא.
# 3. מסרו כל ספר מסתורין.
print(Book.objects.count(), "books on the shelf")
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה מודלים וממשק הניהול
תרגלו בעצמכם: Django אונליין