Список из базы данных
Часть раздела Модели и панель администратора путешествия по Django на Coddy. Урок 13 из 23.
На главной странице по-прежнему перечислены три названия, введённые во view. View — это место, откуда страница получает данные: она запрашивает строки у ORM и передаёт QuerySet шаблону, так же как раньше ты передавал список. Страница с книгами, которые ты ещё не прочитал, будет выглядеть так:
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})Точка в from .models означает собственную папку этого приложения. В шаблоне каждый элемент цикла — это Book, поэтому {{ book.title }} и {{ book.price }} считывают его поля, а один лишь {{ book }} выводит его __str__.
Задание
ЛегкоСделай так, чтобы на главной странице отображались реальные книги.
- В
books/views.pyпередай шаблону все книги из базы данных под именемbooksвместо списка, заданного вручную. - В
home.htmlпоказывай каждую книгу: её название и год в скобках, напримерDune (1965).
На вкладке Shell введи Book.objects.create(title="Beloved", author="Toni Morrison", year=1987, price="13.00") и перезагрузи /: Beloved (1987) будет первой в списке.
Попробуйте сами
from django.shortcuts import render
def home(request):
books = ["Dune", "Emma", "The Hobbit"]
return render(request, "books/home.html", {"books": books})
Все уроки раздела Модели и панель администратора
Потренируйтесь самостоятельно: Песочница Django