الإضافة إلى السياق
جزء من قسم واجهات العرض المعتمدة على الأصناف في رحلة 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 القاموس. يحصل القالب على كل ما تعيده هذه الدالة.
يوجد الاستعلام داخل الدالة، لذا يُنفَّذ مع كل طلب. أما لو كان سمةً للصنف، فسيُنفَّذ مرة واحدة عند بدء الخادم، ولن يتغير العدد أبدًا.
التحدي
سهليعرض القالب الرئيسي الآن أيضًا أحدث وظيفة. أعد كتابة 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