Представление topics
Функция topics() должна получать данные из базы данных и отправлять их шаблону. Обновленная версия views.py выглядит так:
views.py
from django.shortcuts import render
(1) from .models import Topic
def index(request):
...
(2)def topics(request):
. ."""Выводит список тем."""
(3) . .topics = Topic.objects.order_by('date_added')
(4) . .context = {'topics': topics}
(5) . .return render(request, 'learning_logs/topics.html', context)
Сначала импортируется модель, связанная с нужными данными (1) . Функции topics() необходим один параметр: объект запроса, полученный Django от сервера (2). В точке (3) выдается запрос к базе данных на получение объектов Topic, отсортированных по атрибуту date_added. Полученный итоговый набор сохраняется в topics.
В точке (4) определяется контекст, который будет передаваться шаблону. Контекст представляет собой словарь, в котором ключами являются имена, используемые в шаблоне для обращения к данным, а значениями — данные, которые должны передаваться шаблону. В данном случае существует всего одна пара «ключ—значение», которая содержит набор тем, отображаемых на странице. При построении страницы, использующей данные, функции render() передается переменная context, а также объект request и путь к шаблону (5).