Menu
CoddyTech

Une liste issue de la base de données

Fait partie de la section Modèles et interface d’administration du Journey Django de Coddy. Leçon 13 sur 23.

La page d’accueil affiche toujours trois titres saisis directement dans la vue. Les pages et les modèles se rencontrent dans la vue : elle demande des lignes à l’ORM et transmet le QuerySet au template, comme vous avez transmis une liste auparavant. Une page présentant les livres que vous n’avez pas encore lus pourrait être :

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})

Le point dans from .models désigne le dossier propre à cette application. Dans le template, chaque élément de la boucle est un Book : {{ book.title }} et {{ book.price }} lisent ses champs, et {{ book }} seul affiche son __str__.

challenge icon

Défi

Facile
  • Dans books/views.py, transmettez au modèle tous les livres de la base de données sous le nom books, à la place de la liste écrite en dur.
  • Dans home.html, affichez chaque livre avec son titre et son année entre parenthèses, comme Dune (1965).

Cliquez sur Run et ouvrez /. Ajoutez un livre dans l’onglet Shell, actualisez la page : il apparaît dans la liste.

Essayez vous-même

from django.shortcuts import render


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

Toutes les leçons de Modèles et interface d’administration

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