Menu
CoddyTech

TemplateView

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

O site 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 é toda a view. Você configura uma view genérica definindo atributos de classe, 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 deixar de fora uma pasta, a página falhará com TemplateDoesNotExist. A rota é como em qualquer view baseada em classe: path("faq/", views.FaqView.as_view(), name="faq").

challenge icon

Desafio

Fácil

O template jobs/templates/jobs/about.html está pronto. Exiba-o em /about/:

  • Em jobs/views.py, uma AboutView, uma TemplateView que o renderiza.
  • Em jobs/urls.py, uma rota "about/" chamada about.

Pressione Run e abra /about/: ele 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