현재와 같이 url을 지정할 경우 페이지의 갯수가 많아지는경우 url 규칙이 변경 될 경우 일일이 찾아가서 변경해주어야하는 번거로움이 발생한다. 그런 비효율적인 부분을 해결하기위해 우리는 url 별칭을 사용할 것이다.
/review/urls.py
로 가서 path
에 name
이라는 속성을 부여해서 별칭을 설정한다.
urlpatterns = [
path('', views.index, name="index"),
path('<int:question_id>/', views.detail, name="detail")
]
URL 별칭을 설정했기 때문에 URL 별칭을 템플릿과 연결시켜주어야 한다.
/question_list.html
에서 아랫부분을 변경해준다.
<li><a href="{% url 'detail' question.id %}">{{ question.subject }}</a></li>
마지막으로 한번 더 고려해야할 점은, app이 많아질경우 URL의 별칭이 겹치는 문제가 발생할 수 있어 한번 더 구분지어줄 필요가 있다.
review/urls.py
에서 아래와같이 app_name
을 설정해준다.
app_name = "review"
별칭을 설정했을때와 마찬가지로 템플릿으로 넘어가서 수정해준다.
<li><a href="{% url 'review:detail' question.id %}">{{ question.subject }}</a></li>
URL 별칭을 사용하여 URL 매핑 규칙은 바꼈지만, 실제 구동시켜보면 결과는 같은것을 알 수 있다. 여러 앱을 다룰 경우를 대비해서 처음부터 이런식으로 코딩하는 연습을 해야겠다.
잘 읽고 있는 와중에... 갑자기 question_list.html 이 나오네요.
html 페이지를 어떻게 구성할지는 알겠습니다.