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 jedynie renderuje szablon. Django ma do tego klasę: TemplateView. Jej metoda get() jest już napisana: renderuje szablon wskazany w template_name. Witryna z przepisami przechowuje stronę z najczęściej zadawanymi pytaniami 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. Konfigurujesz widok ogólny, ustawiając atrybuty klasy, a kod napisany w Django odczytuje ich wartości.
template_name to nazwa, którą przekazujesz do render(): ścieżka do pliku po templates/. Jeśli pominiesz folder, strona zwróci błąd TemplateDoesNotExist. Trasa wygląda jak w przypadku każdego widoku opartego na klasie: path("faq/", views.FaqView.as_view(), name="faq").
Wyzwanie
ŁatwySzablon jobs/templates/jobs/about.html jest gotowy. Wyświetl go pod adresem /about/:
- W pliku
jobs/views.pyutwórzAboutView, widokTemplateView, który go renderuje. - W pliku
jobs/urls.pydodaj trasę"about/"o nazwieabout.
Naciśnij Run i otwórz /about/: wyświetli się 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