Menu
CoddyTech

Bir Yazar Sayfası

Coddy'nin Django Journey'sinin Modeller ve Yönetim Paneli bölümünün bir parçası. Ders 23 / 23.

Son parça: her yazarın kendine ait bir sayfası olur ve bu sayfaya yazarın adının geçtiği her yerden bağlantı verilir. Bu, bu bölümde oluşturduğun kitap sayfasının başka bir model için olanıdır.

Üç farklı yolu düşün. /authors/ sayfasındaki bir ziyaretçi bir ada tıklar. Bir kitabın sayfasındaki ziyaretçi “by Frank Herbert” bağlantısına tıklar. Bir başkası ise var olmayan bir yazarın adresini yazar ve uygulamanın çökmesi yerine 404 hatası almalıdır.

Tüm bağlantıları {% url %} ve yazarın id değeriyle oluştur; böylece bağlantılar, değişmesi durumunda urls.py dosyasındaki yönlendirmeleri izler.

challenge icon

Görev

Orta

Her yazara /authors/<id>/ adresinde author_detail adlı bir sayfa verin:

  • Yazarın adı bir <h1> içinde yer alsın ve kitaplarına bağlantılar verilsin.
  • Yazarı olmayan bir id için 404 yanıtı döndürülür.
  • /authors/ sayfasında, her ad kendi <h2> başlığında yer alır ve sayfaya bağlantı verir.
  • Bir kitabın sayfasında, yazarın adı yazarın sayfasına bağlantı verir.

Run düğmesine basın ve /authors/ sayfasında bir ada tıklayın.

Kendin dene

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})
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Modeller ve Yönetim Paneli bölümündeki tüm dersler

Kendi başına pratik yap: Django playground