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

Задание

Легко
  • В 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