Menu
CoddyTech

عرض القائمة

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

تحتاج لوحة الإدارة إلى صفحة تعرض جميع الوظائف. إن عرض صفوف جدول في قائمة أمر شائع جدًا، لذا كتبت Django هذا العرض: ListView. أعطه نموذجًا، وسيستعلم عن الصفوف ويعرض قالبًا يتضمنها. قائمة موقع وصفات، في التطبيق recipes:

from django.views.generic import ListView


class RecipeListView(ListView):
    model = Recipe
    context_object_name = "recipes"   # {% for recipe in recipes %}
    ordering = ["minutes"]             # الأسرع أولًا

إذا لم تحدد template_name، فسيعرض recipes/recipe_list.html: تسمية التطبيق، ثم اسم النموذج بأحرف صغيرة، ثم _list.html. تصل الصفوف باسمَي object_list وrecipe_list، أو بالاسم المحدد في context_object_name.

تقبل ordering ما تقبله order_by()، لذا فإن ["-minutes"] سيضع الوصفة الأبطأ أولًا. ومن دونها، تأتي الصفوف بترتيب قاعدة البيانات.

challenge icon

التحدي

سهل

أضف صفحة الوظائف. قالبها، jobs/job_list.html، جاهز ويكرّر عناصر jobs.

  • في jobs/views.py، أنشئ JobListView، وهو ListView لـ Job، مع تسمية القائمة jobs وترتيبها بحيث يظهر أحدث تاريخ posted أولًا. أبقِ القالب الافتراضي.
  • في jobs/urls.py، أضف مسارًا "jobs/" باسم list.

اضغط على Run وافتح /jobs/.

جرّب بنفسك

from django.views.generic import TemplateView

from .models import Job


class HomeView(TemplateView):
    template_name = "jobs/home.html"

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context["count"] = Job.objects.count()
        context["latest"] = Job.objects.order_by("-posted").first()
        return context


class AboutView(TemplateView):
    template_name = "jobs/about.html"

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

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