Menu
CoddyTech

Domyślne sortowanie

Część sekcji Modele i panel administracyjny ścieżki Django w Coddy. Lekcja 6 z 23.

Twoje książki wracają w nieustalonej kolejności: takiej, jaką zwróci baza danych. Model może ustalić kolejność raz na zawsze dla każdego zapytania, które nie określa innej. Opcje dotyczące całego modelu, a nie jednego pola, umieszcza się w klasie wewnętrznej o nazwie Meta:

class Movie(models.Model):
    ...

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

ordering to lista nazw pól. Sama nazwa sortuje od najmniejszej do największej wartości, a tekst od A do Z; minus na początku sortuje w odwrotną stronę, więc ta lista wyświetla najnowsze filmy jako pierwsze. Druga nazwa rozstrzyga remisy: filmy, które weszły do kin tego samego dnia, są sortowane od A do Z.

challenge icon

Wyzwanie

Łatwy
  • Spraw, aby książki były wyświetlane w kolejności według tytułu, od A do Z, gdy nie określono innej kolejności.

Naciśnij Run i otwórz kartę Data: cztery książki są wyświetlone w kolejności od A do Z. Book.objects.all() na karcie Shell pokazuje tę samą kolejność.

Spróbuj swoich sił

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 iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Modele i panel administracyjny

Poćwicz samodzielnie: Edytor online Django