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, а написанный в 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.
Открой /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