الإضافة إلى السياق
جزء من قسم واجهات العرض المعتمدة على الأصناف في رحلة Django على Coddy. الدرس 3 من 18.
يمكن أن تكون الصفحة الرئيسية أيضًا من نوع TemplateView، لكن القالب يحتاج إلى بيانات. تُسمّى المتغيرات التي يتلقاها القالب السياق، وتنشئها الواجهة العامة في دالة، هي get_context_data(). أعد تعريفها لإضافة بياناتك. يحصي موقع وصفات وصفاته السريعة:
class RecipeHomeView(TemplateView):
template_name = "recipes/home.html"
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context["quick"] = Recipe.objects.filter(minutes__lte=30).count()
return contextثلاث خطوات، دائمًا بالطريقة نفسها: تحصل super().get_context_data(**kwargs) على القاموس الذي أنشأه Django، وتضيف مفاتيحك، ثم return القاموس. يحصل القالب على ما تُعيده هذه الدالة.
يوجد الاستعلام داخل الدالة، لذا يُنفَّذ مع كل طلب. أما لو كان سمةً للصنف، فنُفِّذ مرة واحدة عند بدء تشغيل الخادم، ولن يتغير العدد أبدًا.
التحدي
سهليعرض قالب الصفحة الرئيسية الآن أحدث وظيفة أيضًا. في jobs/views.py، أعد كتابة HomeView ليكون TemplateView للقالب jobs/home.html، من دون get(). يضيف سياقها count، وهو عدد الوظائف، وlatest، وهي الوظيفة ذات أحدث تاريخ posted.
اضغط على «العب»: تعرض الصفحة الرئيسية 12 jobs open وNewest: Python Developer at Brightline.
جرّب بنفسك
from django.shortcuts import render
from django.views import View
from django.views.generic import TemplateView
from .models import Job
class HomeView(View):
def get(self, request):
count = Job.objects.count()
return render(request, "jobs/home.html", {"count": count})
class AboutView(TemplateView):
template_name = "jobs/about.html"
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس واجهات العرض المعتمدة على الأصناف
تدرّب بنفسك: Playground لـ Django