Template에서 사용하는 URL이 개발 과정 중 변경되면, 일일이 변경해야 한다. urls.py의 path 수정에 종속성을 없애기 위해, URL에 별칭을 부여한다.
간단히 urls.py의 path에 name을 부여하면 된다. urlpatterns = [path('', views.index, name='index')]
위의 url을 사용하기 위해선 template tag를 <a href="{% url 'detail' question_id=question.id %}"></a>
로 변경해주면 된다. 즉 {% url 'urlname' %}
형식으로 말이다.
그러나 같은 별칭을 여러 App에서 공통적으로 사용하면 문제가 생긴다. 해당 name들을 App의 Namespace를 만들어 구분지어준다.
urls.py에 app_name = 'pybo'
한 줄을 추가해주면 된다. 이는 해당 App의 namespace 명을 정의하는 것이다.
위 코드를 이에 맞춰 바꾸면 <a href="{% url 'pybo:detail' question_id=question.id %}"></a>
, 즉 {% url 'appname:urlname' %}
형식으로 사용하면 된다.