Menu
CoddyTech

TemplateView

Parte de la sección Vistas basadas en clases del Journey de Django de Coddy. Lección 2 de 18.

El sitio de ofertas de empleo necesita una página «Acerca de» que solo muestre una plantilla. Django tiene una clase para eso: TemplateView. Su método get() ya está escrito: muestra la plantilla indicada en template_name. Un sitio de recetas guarda sus preguntas frecuentes en recipes/templates/recipes/pages/faq.html:

from django.views.generic import TemplateView


class FaqView(TemplateView):
    template_name = "recipes/pages/faq.html"

Esa es toda la vista. Configuras una vista genérica estableciendo atributos de clase, y el código que escribió Django los lee.

template_name es el nombre que pasarías a render(): la ruta del archivo después de templates/. Si omites una carpeta, la página falla con TemplateDoesNotExist. La ruta es como la de cualquier vista basada en clases: path("faq/", views.FaqView.as_view(), name="faq").

challenge icon

Desafío

Fácil

La plantilla jobs/templates/jobs/about.html está lista. Muéstrala en /about/:

  • En jobs/views.py, una AboutView, una TemplateView que la renderiza.
  • En jobs/urls.py, una ruta "about/" llamada about.

Presiona Run y abre /about/: dice Job Board lists jobs at small tech companies in Berlin, Lisbon and London.

Pruébalo tú mismo

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 las lecciones de Vistas basadas en clases

Practica por tu cuenta: Playground de Django