Menu
CoddyTech

Una lista desde la base de datos

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

La página de inicio todavía muestra tres títulos escritos directamente en la vista. Las páginas y los modelos se encuentran en la vista: esta le pide filas al ORM y le pasa el QuerySet a la plantilla, igual que antes pasabas una lista. Una página con los libros que todavía no has leído sería así:

from django.shortcuts import render

from .models import Book


def to_read(request):
    books = Book.objects.filter(is_read=False)
    return render(request, "books/to_read.html", {"books": books})

El punto en from .models indica la carpeta propia de esta aplicación. En la plantilla, cada elemento del bucle es un Book, así que {{ book.title }} y {{ book.price }} leen sus campos, y {{ book }} por sí solo imprime su __str__.

challenge icon

Desafío

Fácil
  • En books/views.py, proporciona a la plantilla todos los libros de la base de datos como books, en lugar de la lista escrita manualmente.
  • En home.html, muestra cada libro con su título y año entre paréntesis, como Dune (1965).

Pulsa Ejecutar y abre /. Añade un libro en la pestaña Shell, vuelve a cargar la página y aparecerá en la lista.

Pruébalo tú mismo

from django.shortcuts import render


def home(request):
    books = ["Dune", "Emma", "The Hobbit"]
    return render(request, "books/home.html", {"books": books})

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

Practica por tu cuenta: Playground de Django