본문 바로가기
Develop/Django(Project)

2. TodoApp / 상세조회기능 만들기

by 보보트레인 2023. 9. 21.

1. Templates 생성

todo_detail.html로 템플릿 생성

<html>
    <head>
        <title>TODO 목록 앱</title>
        <link
            rel="stylesheet"
        />
    </head>
    <body>
    <div class="container">
        <h1>TODO 상세보기</h1>
        <div class="container">
            <div class="row">
                <div class="col-md-12">
                    <div class="card">
                        <div class="card-body">
                            <h5 class="card-title">{{ todo.title }}</h5>
                            <p class="'card-text">{{ todo.description }}</p>
                            <a href="{% url 'todo_list' %}" class="btn btn-primary">목록으로</a>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</html>

2. 뷰 작성

 Todo의 pk인 id를 기반으로 Todo 객체를 찾아 todo_detail.html로 전달 할 수 있도록 작성하고, todo_list.html 버튼에 링크를 넣는다.

def todo_detail(request, pk):
    todo = Todo.objects.get(id=pk)
    return render(request, 'todo/todo_detail.html', {'todo': todo})
 <a href="{% url 'todo_detail' pk=todo.pk  %}">{{ todo.title }}</a>

3. Todo 상세 조회 URL 연결하기

from django.urls import path
from . import views

urlpatterns = [
    path('', views.todo_list, name='todo_list'),
    path('<int:pk>/', views.todo_detail, name='todo_detail'),
]

<결과화면>

해당 제목 클릭 시
상세 페이지로 잘 이동함을 확인할 수 있다.

 

반응형