튜토리얼의 프로젝트는 polls 라는 앱 하나만 가지고 진행했습니다. 실제 Django 프로젝트는 앱이 몇개라도 올 수 있습니다. Django는 이 앱들의 URL을 어떻게 구별해 낼까요? 예를 들어, polls 앱은 detail 이라는 뷰를 가지고 있고, 동일한 프로젝트에 블로그를 위한 앱이 있을 수 있습니다.
Django가 `{% url %}` 템플릿태그를 사용할때, 어떤 앱의 뷰에서 URL을 생성할지 알 수 있을까요?
정답은 `URLconf`에 `namespace` 을 추가하는 것입니다. `polls/urls.py` 파일에 app_name을 추가하여 여프리케이션의 이름공간을 설정 할 수 있습니다.
`
from django.urls import path from . import views app_name = 'polls' urlpatterns = [ path('', views.index, name='index'), path('<int:question_id>/', views.detail, name='detail'), path('<int:question_id>/results/', views.results, name='results'), path('<int:question_id>/vote/', views.vote, name='vote'), ]
이제, `polls/index.html` 템플릿의 기존 내용을 namespace으로 나눠진 상세 뷸르 가리키도록 변경하세요.
`polls/urls.py`
<li><a href="{% url 'detail' question.id %}">{{ question.question_text }}</a></li> <!-- tobe --> <li><a href="{% url 'polls:detail' question.id %}">{{ question.question_text }}</a></li>