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

التحدي

سهل

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