الترتيب الافتراضي
جزء من قسم النماذج ولوحة الإدارة في رحلة Django على Coddy. الدرس 6 من 23.
تعود كتبك بترتيب غير مضمون: أيًّا كان ما تعيده قاعدة البيانات. يمكن للنموذج تحديد الترتيب مرة واحدة، لكل استعلام لا يطلب ترتيبًا آخر. تُوضَع الخيارات الخاصة بالنموذج كله، بدلًا من حقل واحد، في فئة داخلية اسمها Meta:
class Movie(models.Model):
...
class Meta:
ordering = ["-released", "title"]ordering قائمة بأسماء الحقول. يؤدي الاسم وحده إلى الترتيب من الأصغر إلى الأكبر، ومن أ إلى ي للنصوص؛ أما وضع إشارة ناقص قبله فيؤدي إلى الترتيب بالعكس، لذا تعرض هذه القائمة أحدث الأفلام أولًا. يحسم الاسم الثاني حالات التعادل: تُرتَّب الأفلام المعروضة في اليوم نفسه من أ إلى ي.
التحدي
سهل- اجعل الكتب تظهر مرتبة حسب العنوان من الألف إلى الياء كلما لم يُطلب ترتيب آخر.
اضغط على 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}"
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس النماذج ولوحة الإدارة
1نموذجك الأول
نموذجك الأولأنواع الحقول2الاستعلام باستخدام ORM
إنشاء الصفوفAll وGetالتصفية وعمليات البحثعدّ الصفوفترتيب الصفوفالتحديث والحذفتدرّب بنفسك: Playground لـ Django