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 — это имя, которое вы передали бы в render(): путь к файлу после templates/. Если пропустить папку, страница завершится ошибкой TemplateDoesNotExist. Маршрут задаётся так же, как для любого представления на основе класса: path("faq/", views.FaqView.as_view(), name="faq").

challenge icon

Задание

Легко

Шаблон 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})

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

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