עמוד מחבר
חלק מהיחידה מודלים וממשק הניהול במסלול ה-Django של Coddy. שיעור 23 מתוך 23.
החלק האחרון: לכל מחבר יש עמוד משלו, שאליו מובילים קישורים מכל מקום שבו מופיע שם של מחבר. זהו עמוד הספר שבנית ביחידה הזאת, עבור מודל אחר.
חשוב על שלוש הדרכים להגיע לשם. מבקר ב־/authors/ לוחץ על שם. מבקר בעמוד של ספר לוחץ על "by Frank Herbert". ומישהו מקליד כתובת של מחבר שאינו קיים, וצריך לקבל שגיאת 404, לא קריסה.
בנה כל קישור באמצעות {% url %} והמזהה של המחבר, כדי שהקישורים יתעדכנו בהתאם ל־urls.py אם הוא ישתנה אי פעם.
אתגר
בינוניהציגו לכל מחבר דף בכתובת /authors/<id>/ בשם author_detail:
- שם המחבר בתוך
<h1>, וקישורים לספרים שלו. - מזהה שאין לו מחבר מחזיר 404.
- בכתובת
/authors/, כל שם בתוך<h2>מקשר לדף שלו. - בדף של ספר, שם המחבר מקשר לדף שלו.
לחצו על Run ואז לחצו על שם בכתובת /authors/.
נסו בעצמכם
from django.shortcuts import get_object_or_404, render
from .models import Author, Book
def home(request):
books = Book.objects.select_related("author")
return render(request, "books/home.html", {"books": books})
def book_detail(request, pk):
book = get_object_or_404(Book, pk=pk)
return render(request, "books/book_detail.html", {"book": book})
def search(request):
q = request.GET.get("q", "")
books = Book.objects.filter(title__icontains=q).select_related("author")
return render(request, "books/search.html", {"q": q, "books": books})
def author_list(request):
authors = Author.objects.prefetch_related("books")
return render(request, "books/author_list.html", {"authors": authors})
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה מודלים וממשק הניהול
תרגלו בעצמכם: Django אונליין