Menu
CoddyTech

ترتيب الصفوف

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

العثور على الكتاب الأرخص، أو الأحدث، أو جميع العناوين مرتبة من الأقدم إلى الأحدث، يتطلب ترتيب الكتب أولًا. ترتّب order_by() كائن QuerySet واحدًا حسب حقل، كما تفعل ordering في Meta مع جميعها، وترتّب علامة الناقص من الأعلى إلى الأدنى. تعيد first() الصف الأول، أو None إذا لم يوجد أي صف، لذا فهي، بخلاف get()، لا تثير استثناءً أبدًا:

Book.objects.order_by("-year").first()   # <Book: SPQR لماري بيرد>
Book.objects.order_by("-price").values_list("author", flat=True)
# <QuerySet ['Mary Beard', 'Umberto Eco', ...]>

تتجاوز values_list("author", flat=True) كائنات Book وتعيد القيم نفسها: 'Mary Beard'. من دون flat=True، تأتي كل قيمة ضمن صف يحتوي على عنصر واحد: ('Mary Beard',).

challenge icon

التحدي

متوسط

أعِد كتابة explore.py ليطبع سطرين:

  1. Cheapest: وعنوان الكتاب الأرخص.
  2. Titles by year: وقائمة بكل العناوين، بدءًا من أقدم كتاب. اطبع القائمة نفسها.

اضغط على «العب»: تعرض وحدة التحكم Cheapest: Pride and Prejudice، ثم Titles by year: ['Pride and Prejudice', 'Emma', 'The Murder of Roger Ackroyd', 'The Hobbit', 'Foundation', 'Dune', 'The Name of the Rose', 'Neuromancer', 'SPQR'].

جرّب بنفسك

from books.models import Book

# 1. الأرخص: عنوان الكتاب الأقل سعرًا

# 2. العناوين حسب السنة: جميع العناوين، بدءًا بالكتاب الأقدم، في قائمة

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

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