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.
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}"
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
1Twój pierwszy model
Twój pierwszy modelTypy pólPoćwicz samodzielnie: Edytor online Django