ListView و DetailView
عرض المجموعات والسجلات المفردة
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 يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- ListView و DetailView
- CreateView و UpdateView
- DeleteView و success_url
- تجاوز get_queryset والقوالب