Menu
CoddyTech

ListView

חלק מהיחידה תצוגות מבוססות מחלקות במסלול ה-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"

כל השיעורים ביחידה תצוגות מבוססות מחלקות

תרגלו בעצמכם: Django אונליין