TemplateView
Coddy'nin Django Journey'sinin Sınıf Tabanlı Görünümler bölümünün bir parçası. Ders 2 / 18.
İş ilanı panosunun yalnızca bir şablonu görüntüleyen Hakkında sayfasına ihtiyacı var. Django'nun bunun için bir sınıfı var: TemplateView. get() yöntemi zaten yazılmıştır: template_name içinde belirtilen şablonu görüntüler. Bir tarif sitesi SSS sayfasını recipes/templates/recipes/pages/faq.html dosyasında tutuyor:
from django.views.generic import TemplateView
class FaqView(TemplateView):
template_name = "recipes/pages/faq.html"Görünümün tamamı bundan ibaret. Genel bir görünümü sınıf özniteliklerini ayarlayarak yapılandırırsın; Django'nun yazdığı kod da bunları okur.
template_name, render() işlevine geçireceğin addır: templates/ sonrasındaki dosya yolu. Bir klasörü belirtmezsen sayfa TemplateDoesNotExist hatasıyla başarısız olur. Rota, sınıf tabanlı tüm görünümlerde olduğu gibidir: path("faq/", views.FaqView.as_view(), name="faq").
Görev
Kolayjobs/templates/jobs/about.html şablonu hazır. /about/ adresinde göster:
jobs/views.pyiçinde, bunu işleyen birTemplateViewolanAboutView.jobs/urls.pyiçinde, adıaboutolan"about/"rotası.
Run'a bas ve /about/ adresini aç: Job Board lists jobs at small tech companies in Berlin, Lisbon and London. yazıyor.
Kendin dene
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})
Sınıf Tabanlı Görünümler bölümündeki tüm dersler
Kendi başına pratik yap: Django playground