TemplateView
Fa parte della sezione View basate su classi del percorso Django di Coddy. Lezione 2 di 18.
Il sito di annunci di lavoro ha bisogno di una pagina «Informazioni» che mostri solo un template. Django ha una classe per questo: TemplateView. Il suo get() è già scritto: mostra il template indicato in template_name. Un sito di ricette conserva le sue FAQ in recipes/templates/recipes/pages/faq.html:
from django.views.generic import TemplateView
class FaqView(TemplateView):
template_name = "recipes/pages/faq.html"Questa è l’intera vista. Configuri una vista generica impostando gli attributi di classe, che il codice scritto da Django legge.
template_name è il nome che passeresti a render(): il percorso del file dopo templates/. Se ometti una cartella, la pagina non funziona e restituisce TemplateDoesNotExist. La route è come per qualsiasi vista basata su classe: path("faq/", views.FaqView.as_view(), name="faq").
Sfida
FacileIl modello jobs/templates/jobs/about.html è pronto. Mostralo all'indirizzo /about/:
- In
jobs/views.py, unaAboutView, unaTemplateViewche lo visualizza. - In
jobs/urls.py, una route"about/"chiamataabout.
Premi Run e apri /about/: dice Job Board lists jobs at small tech companies in Berlin, Lisbon and London.
Provalo tu
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})
Tutte le lezioni di View basate su classi
Esercitati da solo: Playground Django