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 ningún 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
  • Haz que los libros aparezcan en orden por título, de la A a la Z, cuando no se solicite ningún orden.

Pulsa Run y abre la pestaña Data: los cuatro libros aparecen de la A a la Z. Book.objects.all() en la pestaña Shell muestra el mismo orden.

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