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