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").
Desafio
FácilO template jobs/templates/jobs/about.html está pronto. Exiba-o em /about/:
- Em
jobs/views.py, umaAboutView, umaTemplateViewque o renderiza. - Em
jobs/urls.py, uma rota"about/"chamadaabout.
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