عرض القائمة
جزء من قسم واجهات العرض المعتمدة على الأصناف في رحلة 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"] سيضع الوصفة الأبطأ أولًا. ومن دونها، تأتي الصفوف بترتيب قاعدة البيانات.
التحدي
سهلأضف صفحة الوظائف. قالبها، 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