Menu
CoddyTech

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").

challenge icon

التحدي

سهل

اعرض القالب الجاهز jobs/templates/jobs/about.html على المسار /about/.

  1. في jobs/views.py، أضف AboutView، وهو TemplateView يعرضه.
  2. في 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