Menu
CoddyTech

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

جزء من قسم النماذج ولوحة الإدارة في رحلة Django على Coddy. الدرس 12 من 23.

تتغير الأسعار وتغادر الكتب الرفوف. لتغيير كتاب واحد، عيّن سِمته واستدعِ save()؛ فبدون save()، يحتفظ الجدول بالقيمة القديمة. لتغيير عدة صفوف دفعةً واحدة، استدعِ update() على مجموعة استعلامات. ينفّذ استعلام UPDATE واحدًا ويُعيد عدد الصفوف التي تغيّرت. تعمل delete() بالطريقة نفسها وتُعيد عدد الصفوف التي حُذفت، إجمالًا ولكل نموذج:

Book.objects.filter(year__lt=1900).update(price="5.00")   # 2
Book.objects.filter(price__gt=14).delete()   # (1, {'books.Book': 1})

تؤثر الطريقتان في صفوف مجموعة الاستعلامات نفسها بالضبط، لذا طبّق التصفية أولًا. تضع Book.objects.update(is_read=True) علامة على كل كتاب، ولا تطلب أيٌّ من الطريقتين تأكيدًا قبل التنفيذ.

challenge icon

التحدي

سهل

في explore.py، فوق آخر print:

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

اضغط على 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")
quiz iconاختبر نفسك

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

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

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