Menu
CoddyTech

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").

challenge icon

Sfida

Facile

Il modello jobs/templates/jobs/about.html è pronto. Mostralo all'indirizzo /about/:

  • In jobs/views.py, una AboutView, una TemplateView che lo visualizza.
  • In jobs/urls.py, una route "about/" chiamata about.

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