TemplateView
Termasuk bagian View Berbasis Class dalam perjalanan Django di Coddy. Pelajaran 2 dari 18.
Papan lowongan kerja memerlukan halaman Tentang yang hanya merender sebuah templat. Django memiliki class untuk itu, TemplateView. get()-nya sudah ditulis: metode ini merender templat yang namanya tercantum di template_name. Situs resep menyimpan FAQ-nya di recipes/templates/recipes/pages/faq.html:
from django.views.generic import TemplateView
class FaqView(TemplateView):
template_name = "recipes/pages/faq.html"Itulah seluruh view-nya. Django menyebut class view siap pakainya generic views. Kamu menyiapkannya dengan atribut class seperti template_name, lalu kode yang ditulis Django membacanya.
template_name adalah nama yang akan kamu berikan ke render(): path file setelah templates/. Jika ada folder yang tidak disertakan, halaman akan gagal dengan TemplateDoesNotExist. Rutenya sama seperti view berbasis class lainnya: path("faq/", views.FaqView.as_view(), name="faq").
Tantangan
MudahTampilkan template siap pakai jobs/templates/jobs/about.html di /about/.
- Di
jobs/views.py, tambahkanAboutView, sebuahTemplateViewyang menampilkannya. - Di
jobs/urls.py, tambahkan rute"about/"bernamaabout.
Buka /about/: tertulis Job Board lists jobs at small tech companies in Berlin, Lisbon and London.
Coba sendiri
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})
Semua pelajaran di View Berbasis Class
2Tampilan Generik untuk Menampilkan Data
ListViewDetailViewLatihan sendiri: Playground Django