Menu
CoddyTech

الترتيب الافتراضي

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

تعود كتبك بترتيب غير مضمون: أيًّا كان ما تعيده قاعدة البيانات. يمكن للنموذج تحديد الترتيب مرة واحدة، لكل استعلام لا يطلب ترتيبًا آخر. تُوضَع الخيارات الخاصة بالنموذج كله، بدلًا من حقل واحد، في فئة داخلية اسمها Meta:

class Movie(models.Model):
    ...

    class Meta:
        ordering = ["-released", "title"]

ordering قائمة بأسماء الحقول. يؤدي الاسم وحده إلى الترتيب من الأصغر إلى الأكبر، ومن أ إلى ي للنصوص؛ أما وضع إشارة ناقص قبله فيؤدي إلى الترتيب بالعكس، لذا تعرض هذه القائمة أحدث الأفلام أولًا. يحسم الاسم الثاني حالات التعادل: تُرتَّب الأفلام المعروضة في اليوم نفسه من أ إلى ي.

challenge icon

التحدي

سهل
  • اجعل الكتب تظهر مرتبة حسب العنوان من الألف إلى الياء كلما لم يُطلب ترتيب آخر.

اضغط على Run وافتح علامة التبويب Data: ستظهر الكتب الأربعة مرتبة من الألف إلى الياء. يعرض Book.objects.all() في علامة التبويب Shell الترتيب نفسه.

جرّب بنفسك

from django.db import models


class Book(models.Model):
    class Genre(models.TextChoices):
        FICTION = "fiction", "Fiction"
        SCIFI = "scifi", "Science fiction"
        MYSTERY = "mystery", "Mystery"
        HISTORY = "history", "History"

    title = models.CharField(max_length=200)
    author = models.CharField(max_length=100)
    year = models.IntegerField()
    price = models.DecimalField(max_digits=6, decimal_places=2)
    is_read = models.BooleanField(default=False)
    finished = models.DateField(null=True, blank=True)
    summary = models.TextField(blank=True)
    genre = models.CharField(max_length=20, choices=Genre, default=Genre.FICTION)

    def __str__(self):
        return f"{self.title} by {self.author}"
quiz iconاختبر نفسك

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

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

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