Список из базы данных
Часть раздела Модели и панель администратора путешествия по 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).
Нажми Run и открой /. Добавь книгу на вкладке Shell, перезагрузи страницу — она появится в списке.
Попробуйте сами
from django.shortcuts import render
def home(request):
books = ["Dune", "Emma", "The Hobbit"]
return render(request, "books/home.html", {"books": books})
Все уроки раздела Модели и панель администратора
Потренируйтесь самостоятельно: Песочница Django