Menu
CoddyTech

الإضافة إلى السياق

جزء من قسم واجهات العرض المعتمدة على الأصناف في رحلة 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 القاموس. يحصل القالب على ما تُعيده هذه الدالة.

يوجد الاستعلام داخل الدالة، لذا يُنفَّذ مع كل طلب. أما لو كان سمةً للصنف، فنُفِّذ مرة واحدة عند بدء تشغيل الخادم، ولن يتغير العدد أبدًا.

challenge icon

التحدي

سهل

يعرض قالب الصفحة الرئيسية الآن أحدث وظيفة أيضًا. في 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"
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس واجهات العرض المعتمدة على الأصناف

تدرّب بنفسك: Playground لـ Django