Uma lista do banco de dados
Parte da seção Models e o Admin do Journey de Django da Coddy. Lição 13 de 23.
A página inicial ainda lista três títulos digitados diretamente na view. A view é onde a página obtém seus dados: ela pede linhas ao ORM e passa o QuerySet para o template, como você fez com uma lista antes. Uma página com os livros que você ainda não leu ficaria assim:
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})O ponto em from .models significa a pasta do próprio app. No template, cada item do loop é um Book, então {{ book.title }} e {{ book.price }} acessam seus campos, e {{ book }} sozinho exibe seu __str__.
Desafio
FácilFaça a página inicial listar os livros reais.
- Em
books/views.py, passe ao template todos os livros do banco de dados comobooks, no lugar da lista digitada. - Em
home.html, mostre cada livro com seu título e ano entre parênteses, comoDune (1965).
Na aba Shell, digite Book.objects.create(title="Beloved", author="Toni Morrison", year=1987, price="13.00") e recarregue /: Beloved (1987) aparece no início da lista.
Experimente você mesmo
from django.shortcuts import render
def home(request):
books = ["Dune", "Emma", "The Hobbit"]
return render(request, "books/home.html", {"books": books})
Todas as lições de Models e o Admin
Pratique por conta própria: Playground de Django