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 nieokreślonej kolejności: takiej, jaką zwróci baza danych. Model może ustawić kolejność raz, dla każdego zapytania, które nie określa innej. Opcje dotyczące całego modelu, a nie pojedynczego 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 rosnąco, od A do Z w przypadku tekstu; minus na początku sortuje w przeciwnym kierunku, więc ta lista umieszcza najnowsze filmy na początku. Druga nazwa rozstrzyga remisy: filmy, które weszły do kin tego samego dnia, są ułożone alfabetycznie.

challenge icon

Wyzwanie

Łatwy

W pliku books/models.py ustaw kolejność książek według tytułu od A do Z, gdy nie określono innej kolejności.

Naciśnij „Uruchom” i wpisz Book.objects.all() na karcie Shell: najpierw pojawi się Dune, a na końcu The Hobbit.

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