Menu
CoddyTech

Список из базы данных

Часть раздела Модели и панель администратора путешествия по 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__.

challenge icon

Задание

Легко

Сделай так, чтобы на главной странице отображались реальные книги.

  1. В books/views.py передай шаблону все книги из базы данных под именем books вместо списка, заданного вручную.
  2. В 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