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، ويمكنك التقاط هذه الاستثناءات كما تلتقط أي استثناء آخر. هناك كتابان هنا من تأليف جين أوستن:

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اختبر نفسك

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

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

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