Menu
CoddyTech

Varsayılan Sıralama

Coddy'nin Django Journey'sinin Modeller ve Yönetim Paneli bölümünün bir parçası. Ders 6 / 23.

Kitaplarınız, veritabanının verdiği sırayla, önceden belirlenmiş bir düzen olmadan geri gelir. Bir model, başka bir sıralama istemeyen her sorgu için sıralamayı bir kez belirleyebilir. Tek bir alan için değil, modelin tamamı için geçerli seçenekler, Meta adlı bir iç sınıfa yazılır:

class Movie(models.Model):
    ...

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

ordering, alan adlarından oluşan bir listedir. Tek başına kullanılan bir ad, küçükten büyüğe sıralar; metinlerde A'dan Z'ye sıralama yapar. Başına eksi işareti eklemek sıralamayı tersine çevirir; bu nedenle bu örnek en yeni filmleri önce listeler. İkinci ad, eşitlikleri bozar: aynı gün gösterime giren filmler A'dan Z'ye sıralanır.

challenge icon

Görev

Kolay
  • Herhangi bir sıralama belirtilmediğinde kitapları her zaman başlığa göre A'dan Z'ye sıralayın.

Çalıştır'a basın ve Veri sekmesini açın: dört kitap A'dan Z'ye sıralanmış olarak listelenir. Shell sekmesindeki Book.objects.all() aynı sıralamayı gösterir.

Kendin dene

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 iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Modeller ve Yönetim Paneli bölümündeki tüm dersler

Kendi başına pratik yap: Django playground