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__.
Défi
Facile- Dans
books/views.py, transmettez au modèle tous les livres de la base de données sous le nombooks, à la place de la liste écrite en dur. - Dans
home.html, affichez chaque livre avec son titre et son année entre parenthèses, commeDune (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
3Des pages issues de la base de données
Une liste issue de la base de donnéesUne page pour chaque livreEntraînez-vous par vous-même : Playground Django