TemplateView
חלק מהיחידה תצוגות מבוססות מחלקות במסלול ה-Django של Coddy. שיעור 2 מתוך 18.
לוח המשרות זקוק לדף „אודות” שמציג תבנית בלבד. ל-Django יש מחלקה לכך, TemplateView. המתודה get() שלה כבר כתובה: היא מציגה את התבנית ששמה מצוין ב-template_name. אתר מתכונים שומר את השאלות הנפוצות שלו בקובץ recipes/templates/recipes/pages/faq.html:
from django.views.generic import TemplateView
class FaqView(TemplateView):
template_name = "recipes/pages/faq.html"זו כל התצוגה. Django מכנה את מחלקות התצוגה המוכנות שלו תצוגות גנריות. מגדירים אחת באמצעות מאפייני מחלקה כגון template_name, והקוד ש-Django כתב קורא אותם.
template_name הוא השם שהיית מעביר ל-render(): הנתיב לקובץ אחרי templates/. אם משמיטים תיקייה, הדף נכשל עם TemplateDoesNotExist. הנתיב מוגדר כמו בכל תצוגה מבוססת מחלקה: path("faq/", views.FaqView.as_view(), name="faq").
אתגר
קלהציגו את התבנית המוכנה jobs/templates/jobs/about.html בכתובת /about/.
- ב־
jobs/views.py, הוסיפו אתAboutView, מחלקה מסוגTemplateViewשמציגה אותה. - ב־
jobs/urls.py, הוסיפו את הנתיב"about/"בשםabout.
פתחו את /about/: מופיע הכיתוב Job Board lists jobs at small tech companies in Berlin, Lisbon and London.
נסו בעצמכם
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})
כל השיעורים ביחידה תצוגות מבוססות מחלקות
תרגלו בעצמכם: Django אונליין