Django Academy · درس

ListView و DetailView

عرض المجموعات والسجلات المفردة

الدرس 1 من 413 خطوة

ListView و DetailView درس مجاني في Django Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Django Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Django Academy 4 دروس في المجموع.

صفحتان تحتاج إليهما دائمًا

تعرض كل التطبيقات تقريبًا قائمةً بالعناصر وصفحةً لعنصر واحد. يوفر Django عروضًا عامة تنشئ كليهما لك. ✨

تعرّف إلى ListView

يجلب ListView عدة كائنات ويمررها إلى قالب، لذلك لن تضطر إلى كتابة الاستعلام واستدعاء العرض بنفسك.

وجّه ListView إلى نموذج

تزوّد ListView بنموذج، فينفّذ الاستعلام تلقائيًا لكل صف في ذلك الجدول.

from django.views.generic import ListView
from .models import Post

class PostList(ListView):
    model = Post

اسم القالب الافتراضي

يبحث ListView عن قالب باسم app/model_list.html، مثل post_list.html، ما لم تتجاوز هذا الإعداد.

object_list في القالب

تصل الصفوف داخل القالب في object_list، وتصبح جاهزة لتكرارها وعرضها.

{% for post in object_list %}
  <li>{{ post.title }}</li>
{% endfor %}

أسماء أوضح باستخدام context_object_name

عيّن context_object_name ليُقرأ متغير القالب بصورة طبيعية، مثل posts بدلًا من object_list.

class PostList(ListView):
    model = Post
    context_object_name = "posts"

تعرّف إلى DetailView

يجلب DetailView كائنًا واحدًا باستخدام مفتاحه، ويعرض له صفحة مخصصة.

كيف يعثر DetailView على الكائن

يقرأ DetailView قيمة pk أو slug من عنوان URL، ثم يشغّل get لتحميل ذلك السجل وحده.

from django.views.generic import DetailView

class PostDetail(DetailView):
    model = Post

قالب التفاصيل والكائن object

يعرض DetailView القالب app/model_detail.html، ويتيح السجل باسم object داخل القالب.

<h1>{{ object.title }}</h1>
<p>{{ object.body }}</p>

ربطها بعناوين URL

يصبح كل عرض عام عنوان URL باستخدام as_view()، الذي يحوّل الفئة إلى عرض قابل للاستدعاء.

path("posts/", PostList.as_view()),
path("posts/<int:pk>/", PostDetail.as_view()),

تعليمة برمجية أقل، والنتيجة نفسها

يستبدل هذان العرضان معًا عشرات الأسطر التمهيدية، ويمنحانك صفحتي القائمة والتفاصيل بجهد يكاد لا يُذكر. 🚀

تحقق سريع

من أين يحصل DetailView على الكائن الذي يعرضه؟

مراجعة: القائمة والتفاصيل

تعرّفت إلى ListView للمجموعات وDetailView لسجل واحد، وربطتهما باستخدام as_view()، وتجنبت قدرًا كبيرًا من التعليمات البرمجية التمهيدية. 🎉

البدء مجانًا

تعلم Python مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
30
الدروس
120

الأسئلة الشائعة

هل درس «ListView و DetailView» مجاني؟

نعم — نص درس «ListView و DetailView» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Django Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Django Academy 4 دروس في المجموع.

ماذا ستتعلم في «ListView و DetailView»؟

عرض المجموعات والسجلات المفردة تتمرن على Django Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Django Academy؟

لا تُشترط خبرة سابقة. Django Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «ListView و DetailView»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Django Academy هذا؟

نعم. كل درس في Django Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. ListView و DetailView
  2. CreateView و UpdateView
  3. DeleteView و success_url
  4. تجاوز get_queryset والقوالب
← العودة إلى Django Academy