Menu
CoddyTech

التحديث والحذف

جزء من قسم النماذج ولوحة الإدارة في رحلة 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) علامة على كل كتاب، ولا تطلب أيٌّ من الطريقتين التأكيد قبل تنفيذ الإجراء.

challenge icon

التحدي

سهل

في explore.py، أضف التعليمات قبل آخر print:

  1. كتاب Dune معروض للبيع: غيّر سعره إلى 7.99.
  2. ضع علامة «مقروء» على كل كتاب من تأليف Jane Austen، باستخدام استعلام واحد.
  3. احذف كل كتاب من كتب الغموض، باستخدام استعلام واحد.

اضغط «تشغيل»: ستعرض وحدة التحكم 7 books on the shelf.

جرّب بنفسك

from books.models import Book

# 1. كتاب Dune معروض للبيع بسعر مخفّض: اضبط سعره على 7.99.

# 2. ضع علامة مقروء على كل كتاب من تأليف Jane Austen.

# 3. تبرّع بكل كتب الغموض.

print(Book.objects.count(), "books on the shelf")
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس النماذج ولوحة الإدارة

تدرّب بنفسك: Playground لـ Django