Menu
CoddyTech

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

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

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

class Movie(models.Model):
    ...

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

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

challenge icon

التحدي

سهل

في books/models.py، اجعل الكتب تظهر مرتبة حسب العنوان من الألف إلى الياء كلما لم يُطلب ترتيب معين.

اضغط على «العب» واكتب Book.objects.all() في علامة تبويب Shell: يظهر Dune أولًا وThe Hobbit أخيرًا.

جرّب بنفسك

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