Menu
CoddyTech

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.

challenge icon

Défi

Facile

Dans 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}"
quiz iconTestez-vous

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

Entraînez-vous par vous-même : Playground Django