Menu
CoddyTech

TemplateView

Część sekcji Widoki oparte na klasach ścieżki Django w Coddy. Lekcja 2 z 18.

Tablica ogłoszeń potrzebuje strony „O nas”, która renderuje tylko szablon. Django ma do tego klasę TemplateView. Jej metoda get() jest już napisana: renderuje szablon wskazany w template_name. Serwis z przepisami przechowuje sekcję FAQ w pliku recipes/templates/recipes/pages/faq.html:

from django.views.generic import TemplateView


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

To cały widok. Django nazywa gotowe klasy widoków widokami generycznymi. Konfigurujesz je za pomocą atrybutów klasy, takich jak template_name, a napisany przez Django kod odczytuje ich wartości.

template_name to nazwa, którą przekazujesz do render(): ścieżka do pliku po templates/. Jeśli pominiesz folder, strona zakończy się błędem TemplateDoesNotExist. Trasa wygląda tak jak w przypadku każdego widoku opartego na klasie: path("faq/", views.FaqView.as_view(), name="faq").

challenge icon

Wyzwanie

Łatwy

Wyświetl gotowy szablon jobs/templates/jobs/about.html pod adresem /about/.

  1. W pliku jobs/views.py dodaj AboutView, czyli TemplateView, który go renderuje.
  2. W pliku jobs/urls.py dodaj trasę "about/" o nazwie about.

Otwórz /about/: wyświetla się tam tekst Job Board lists jobs at small tech companies in Berlin, Lisbon and London.

Spróbuj swoich sił

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})

Wszystkie lekcje w sekcji Widoki oparte na klasach

Poćwicz samodzielnie: Edytor online Django