Ordre par défaut
Fait partie de la section Modèles et interface d’administration du Journey Django de Coddy. Leçon 6 sur 23.
Vos livres reviennent dans un ordre imprévisible : celui que renvoie la base de données. Un modèle peut définir l’ordre une fois pour toutes les requêtes qui n’en demandent pas un autre. Les options qui s’appliquent à l’ensemble du modèle, plutôt qu’à un seul champ, se placent dans une classe interne nommée Meta :
class Movie(models.Model):
...
class Meta:
ordering = ["-released", "title"]ordering est une liste de noms de champs. Un nom seul trie par ordre croissant, de A à Z pour le texte ; un signe moins placé devant trie dans l’autre sens : cette liste affiche donc les films les plus récents en premier. Le deuxième nom départage les égalités : les films sortis le même jour sont classés de A à Z.
Défi
FacileDans books/models.py, fais en sorte que les livres soient renvoyés par ordre de titre, de A à Z, lorsqu’aucun ordre n’est demandé.
Clique sur « Exécuter » et saisis Book.objects.all() dans l’onglet Shell : Dune apparaît en premier et The Hobbit en dernier.
Essayez vous-même
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}"
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Modèles et interface d’administration
1Votre premier modèle
Votre premier modèleTypes de champs3Des pages issues de la base de données
Une liste issue de la base de donnéesUne page pour chaque livreEntraînez-vous par vous-même : Playground Django