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. Django llama vistas genéricas a sus clases de vista ya preparadas. Configuras una con atributos de clase como template_name, 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

Muestra la plantilla preparada jobs/templates/jobs/about.html en /about/.

  1. En jobs/views.py, añade AboutView, una TemplateView que la renderice.
  2. En jobs/urls.py, añade la ruta "about/" con el nombre about.

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