Namespacing URL names
현재 예제에서는 하나의 앱만 다루고 있지만, 실제 프로젝트에서 앱의 수는 20개 그 이상일 수도 있다. 그러면 장고는 그러한 URL 네임들을 어떻게 차별화시키는 것일까?
예를 들어, poll 앱의 경우 상세 뷰를 가지고 있고, 동일한 프로젝트에 블로그를 위한 앱을 가지고 있다고 하자. {% url %} 템플릿 태그를 사용할 때 어떤 앱의 뷰를 생성해야하는지 알 수 있을까?
그 해답은 현재의 root URLconf 에 네임스페이스를 추가하는 것이다. mysite/urls.py 에 네임스페이스를 포함하도록 변경해보자.
/root/mysite/mysite/urls.py
그러면 polls/index.html 템플릿을 수정하자.위에서 지정한 네임스페이스를 지정해주는 것이다.
/root/mysite/polls/templates/polls/index.html
{% if latest_question_list %}
<ul>
{% for question in latest_question_list %}
<li><a href="{% url 'polls:detail' question.id %}">{{ question.question_text }}</a></li>
{% endfor %}
</ul>
{% else %}
<p>No polls are available.</p>
{% endif %}
'프로그래밍 Programming' 카테고리의 다른 글
[django] Use generic views: Less code is better (0) | 2015.07.18 |
---|---|
[django] Write a simple form (0) | 2015.07.18 |
[django] Use the template system (0) | 2015.07.18 |
[django] Raising a 404 error (0) | 2015.07.18 |
[django] Write views that actually do something (0) | 2015.07.17 |