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

التحدي

سهل

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

  1. في jobs/views.py، استبدل الدالة home بـ HomeView، وهو View تنفّذ فيه get() ما كانت تنفّذه home.
  2. في 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