작가 페이지 만들기
Coddy Django 여정의 모델과 관리자 섹션에 포함된 레슨. 23개 중 23번째.
마지막 단계입니다. 모든 저자에게는 자신만의 페이지가 있고, 저자 이름이 나오는 모든 곳에서 그 페이지로 연결됩니다. 이 페이지는 다른 모델을 위해 이 섹션에서 만든 책 페이지와 같습니다.
페이지로 들어오는 세 가지 경로를 생각해 보세요. /authors/에 있는 방문자가 이름을 클릭합니다. 책 페이지에 있는 방문자가 "프랭크 허버트 저"를 클릭합니다. 그리고 존재하지 않는 저자의 주소를 입력한 사람은 오류가 발생하는 대신 404를 받아야 합니다.
{% url %}과 저자의 id를 사용해 모든 링크를 만드세요. 그래야 urls.py가 바뀌더라도 링크가 변경 사항을 따릅니다.
챌린지
중급모든 저자에게 /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})
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
모델과 관리자의 모든 레슨
직접 연습해 보세요: Django 플레이그라운드