TemplateView
Часть раздела Представления на основе классов путешествия по Django на Coddy. Урок 2 из 18.
Доске вакансий нужна страница «О нас», которая только отображает шаблон. Для этого в Django есть класс TemplateView. Его метод get() уже написан: он отображает шаблон, указанный в template_name. Сайт с рецептами хранит раздел часто задаваемых вопросов в файле recipes/templates/recipes/pages/faq.html:
from django.views.generic import TemplateView
class FaqView(TemplateView):
template_name = "recipes/pages/faq.html"Вот и всё представление. Чтобы настроить обобщённое представление, нужно задать атрибуты класса, которые читает код Django.
template_name — это имя, которое вы передали бы в render(): путь к файлу после templates/. Если пропустить папку, страница завершится ошибкой TemplateDoesNotExist. Маршрут задаётся так же, как для любого представления на основе класса: path("faq/", views.FaqView.as_view(), name="faq").
Задание
ЛегкоШаблон jobs/templates/jobs/about.html готов. Покажите его по адресу /about/:
- В
jobs/views.py—AboutView, представлениеTemplateView, которое его отображает. - В
jobs/urls.py— маршрут"about/"с именемabout.
Нажмите Run и откройте /about/: там написано Job Board lists jobs at small tech companies in Berlin, Lisbon and London.
Попробуйте сами
from django.shortcuts import render
from django.views import View
from .models import Job
class HomeView(View):
def get(self, request):
count = Job.objects.count()
return render(request, "jobs/home.html", {"count": count})
Все уроки раздела Представления на основе классов
2Универсальные представления для отображения
ListViewDetailViewПотренируйтесь самостоятельно: Песочница Django