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").
Wyzwanie
ŁatwyWyświetl gotowy szablon jobs/templates/jobs/about.html pod adresem /about/.
- W pliku
jobs/views.pydodajAboutView, czyliTemplateView, który go renderuje. - W pliku
jobs/urls.pydodaj trasę"about/"o nazwieabout.
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
2Generyczne widoki wyświetlania
ListViewDetailViewPoćwicz samodzielnie: Edytor online Django