Menu
CoddyTech

작가 페이지 만들기

Coddy Django 여정의 모델과 관리자 섹션에 포함된 레슨. 23개 중 23번째.

마지막 단계입니다. 모든 저자에게는 자신만의 페이지가 있고, 저자 이름이 나오는 모든 곳에서 그 페이지로 연결됩니다. 이 페이지는 다른 모델을 위해 이 섹션에서 만든 책 페이지와 같습니다.

페이지로 들어오는 세 가지 경로를 생각해 보세요. /authors/에 있는 방문자가 이름을 클릭합니다. 책 페이지에 있는 방문자가 "프랭크 허버트 저"를 클릭합니다. 그리고 존재하지 않는 저자의 주소를 입력한 사람은 오류가 발생하는 대신 404를 받아야 합니다.

{% url %}과 저자의 id를 사용해 모든 링크를 만드세요. 그래야 urls.py가 바뀌더라도 링크가 변경 사항을 따릅니다.

challenge icon

챌린지

중급

모든 저자에게 /authors/<id>/ 경로에 author_detail이라는 이름의 페이지를 제공하세요.

  • <h1>에 저자 이름을 표시하고, 저자의 책으로 연결되는 링크를 추가하세요.
  • 해당 ID의 저자가 없으면 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})
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

모델과 관리자의 모든 레슨

직접 연습해 보세요: Django 플레이그라운드