Menu
CoddyTech

Halaman Seorang Penulis

Termasuk bagian Model dan Admin dalam perjalanan Django di Coddy. Pelajaran 23 dari 23.

Bagian terakhir: setiap penulis mendapatkan halamannya sendiri, yang ditautkan dari setiap kemunculan nama penulis. Halamannya seperti halaman buku yang kamu buat di bagian ini, tetapi untuk model lain.

Pikirkan tiga cara untuk membuka halaman itu. Pengunjung di /authors/ mengeklik nama. Pengunjung di halaman sebuah buku mengeklik "by Frank Herbert". Lalu, seseorang mengetik alamat penulis yang tidak ada, dan seharusnya mendapatkan 404, bukan menyebabkan aplikasi berhenti.

Buat setiap tautan dengan {% url %} dan id penulis, sehingga tautannya mengikuti urls.py jika file itu berubah.

challenge icon

Tantangan

Sedang

Beri setiap penulis halaman di /authors/<id>/ bernama author_detail.

  1. Di books/views.py, tulis author_detail(request, pk) untuk merender books/author_detail.html: nama di dalam <h1>, tautan ke setiap buku, dan respons 404 untuk id yang tidak dikenal. Tambahkan rutenya.
  2. Di author_list.html, tautkan setiap nama <h2> ke halaman penulisnya.
  3. Di book_detail.html, tautkan nama penulis saja: by <a href="/authors/1/">Frank Herbert</a>.

Di /authors/, klik Frank Herbert: halamannya menautkan ke Children of Dune dan Dune.

Coba sendiri

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 iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Model dan Admin

Latihan sendiri: Playground Django