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، ويمكنك التعامل معهما كما تتعامل مع أي استثناء. اثنان من الكتب هنا من تأليف Jane Austen:

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 بدلًا من حدوث عطل.

اضغط على «العب»: تعرض وحدة التحكم العناوين التسعة، ثم الجملتين.

جرّب بنفسك

from books.models import Book

# 1. اطبع عنوان كل كتاب، عنوانًا واحدًا في كل سطر.

# 2. احصل على Dune واطبع سعره.

# 3. ابحث عن Ulysses.
quiz iconاختبر نفسك

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

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

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