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, önceden belirlenmiş bir sıra olmadan geri gelir: veritabanı nasıl verirse. 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 bir ad, küçükten büyüğe sıralama yapar; metinlerde A'dan Z'ye sıralar. Başına eksi işareti eklemek sıralamayı tersine çevirir, dolayısıyla bu örnek en yeni filmleri önce listeler. İkinci ad, eşitlikleri bozar: aynı gün vizyona giren filmler A'dan Z'ye sıralanır.

challenge icon

Görev

Kolay

books/models.py dosyasında, herhangi bir sıralama istenmediğinde kitapların başlığa göre A'dan Z'ye sıralanmasını sağla.

“Çalıştır” düğmesine bas ve Shell sekmesine Book.objects.all() yaz: Önce Dune, en son The Hobbit gelir.

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