Menu
CoddyTech

TemplateView

Parte da seção Views baseadas em classes do Journey de Django da Coddy. Lição 2 de 18.

O quadro de vagas precisa de uma página Sobre que apenas renderize um template. O Django tem uma classe para isso: TemplateView. O método get() já está escrito: ele renderiza o template indicado em template_name. Um site de receitas mantém suas perguntas frequentes em recipes/templates/recipes/pages/faq.html:

from django.views.generic import TemplateView


class FaqView(TemplateView):
    template_name = "recipes/pages/faq.html"

Essa é a view inteira. O Django chama suas classes de view prontas de views genéricas. Você configura uma delas com atributos de classe, como template_name, e o código escrito pelo Django os lê.

template_name é o nome que você passaria para render(): o caminho do arquivo após templates/. Se você deixar de fora uma pasta, a página falhará com TemplateDoesNotExist. A rota é como qualquer view baseada em classe: path("faq/", views.FaqView.as_view(), name="faq").

challenge icon

Desafio

Fácil

Exiba o template pronto jobs/templates/jobs/about.html em /about/.

  1. Em jobs/views.py, adicione AboutView, uma TemplateView que o renderiza.
  2. Em jobs/urls.py, adicione a rota "about/" chamada about.

Abra /about/: a página diz Job Board lists jobs at small tech companies in Berlin, Lisbon and London.

Experimente você mesmo

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})

Todas as lições de Views baseadas em classes

Pratique por conta própria: Playground de Django