Menu
CoddyTech

Orden predeterminado

Parte de la sección Modelos y el panel de administración del Journey de Django de Coddy. Lección 6 de 23.

Tus libros vuelven sin un orden garantizado: el que proporcione la base de datos. Un modelo puede establecer el orden una sola vez para todas las consultas que no soliciten otro. Las opciones para todo el modelo, en lugar de para un solo campo, van en una clase interna llamada Meta:

class Movie(models.Model):
    ...

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

ordering es una lista de nombres de campos. Un nombre sin más ordena de menor a mayor, de la A a la Z para el texto; un signo menos delante ordena en sentido contrario, así que esto muestra primero las películas más recientes. El segundo nombre deshace los empates: las películas estrenadas el mismo día aparecen de la A a la Z.

challenge icon

Desafío

Fácil

En books/models.py, haz que los libros aparezcan ordenados por título, de la A a la Z, siempre que no se solicite ningún orden.

Pulsa «Ejecutar» y escribe Book.objects.all() en la pestaña Shell: Dune aparece primero y The Hobbit al final.

Pruébalo tú mismo

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 iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Modelos y el panel de administración

Practica por tu cuenta: Playground de Django