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.
Görev
Kolaybooks/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}"
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
1İlk Modeliniz
İlk ModelinizAlan TürleriKendi başına pratik yap: Django playground