Menu
CoddyTech

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").

challenge icon

Задание

Легко

Покажи готовый шаблон jobs/templates/jobs/about.html по адресу /about/.

  1. В jobs/views.py добавь AboutView — TemplateView, который отображает этот шаблон.
  2. В 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})

Все уроки раздела Представления на основе классов

Потренируйтесь самостоятельно: Песочница Django