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.
Desafío
FácilEn 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}"
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
1Tu primer modelo
Tu primer modeloTipos de campos3Páginas desde la base de datos
Una lista desde la base de datosUna página para cada libroPractica por tu cuenta: Playground de Django