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})
جميع دروس واجهات العرض المعتمدة على الأصناف
تدرّب بنفسك: Playground لـ Django