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").
Desafio
FácilExiba o template pronto jobs/templates/jobs/about.html em /about/.
- Em
jobs/views.py, adicioneAboutView, umaTemplateViewque o renderiza. - Em
jobs/urls.py, adicione a rota"about/"chamadaabout.
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