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 הוא השם שהיית מעבירה ל-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.
לחצו על Run ופתחו את /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 אונליין