Menu
CoddyTech

صنف العرض

جزء من قسم واجهات العرض المعتمدة على الأصناف في رحلة Django على Coddy. الدرس 1 من 18.

ينشئ هذا القسم لوحة وظائف، وصفحتها الرئيسية هي عرض دالي مثل كل العروض حتى الآن. يتيح لك Django أيضًا كتابة عرض على هيئة صنف: ترث من View وتضيف أسلوبًا لكل طريقة HTTP. يستدعي طلب GET get()، ويستدعي طلب POST post().

from django.views import View


class RecipeCountView(View):
    def get(self, request):
        total = Recipe.objects.count()
        return HttpResponse(f"{total} recipes")

يأخذ الأسلوب self، ثم request، ويعيد استجابة، كما يفعل العرض الدالي. يحتاج المسار إلى دالة، وينشئ .as_view() واحدة من الصنف: path("count/", views.RecipeCountView.as_view()). مع كل طلب، تنشئ تلك الدالة كائنًا جديدًا من الصنف وتستدعي الأسلوب المطابق.

إذا لم يعرّف الصنف أسلوبًا ما، مثل POST هنا، فستكون النتيجة 405 الطريقة غير مسموح بها. وتظهر الفائدة بعد ذلك: يوفّر Django أصنافًا تنفّذ المهام الشائعة مسبقًا.

challenge icon

التحدي

سهل

حوِّل الصفحة الرئيسية إلى صنف:

  • في jobs/views.py، استبدل الدالة home بـ HomeView، وهو View تنفّذ دالته get() ما كانت تنفّذه home.
  • في jobs/urls.py، وجّه المسار "" إلى الصنف. أبقِ على name="home".

اضغط على «تشغيل»: ستظل الصفحة الرئيسية تعرض 12 jobs open.

جرّب بنفسك

from django.shortcuts import render

from .models import Job


def home(request):
    count = Job.objects.count()
    return render(request, "jobs/home.html", {"count": count})

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

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