관리 메뉴

Storage Gonie

29. (app2) 하드코딩 URL 제거(index.html 수정, polls.urls.py 수정) 본문

웹개발/Django 웹서비스 개발(인프런)

29. (app2) 하드코딩 URL 제거(index.html 수정, polls.urls.py 수정)

Storage Gonie 2019. 2. 19. 16:54
반응형

1. index.html의 하드코딩된 부분을 수정한다.

- 위 부분을 아래와 같이 수정.

- '아래에서 detail'은 polls/urls.py의 urlpatterns 부분에 있는 name.

- 결과적으로 생성되는 코드는 둘다 아래와 같음

{% for question in latest_question_list %}
<li><a href="/polls/{{ question.id }}/">{{ question.question_text }}</a></li>
{% endfor %}

{% for question in latest_question_list %}
<li><a href="{% url 'detail' question.id %}">{{ question.question_text }}</a></li>
{% endfor %}

url(r'^(?P<question_id>[0-9]+)/$', views.detail, name = "detail"),


2. url namespace를 사용하여 통해 중복된 name을 사용할 수 있게 한다.

- polls.urls.py 에 app_name 을 추가.

- index.html 의 detail 이름에 namespace를 지정해준다.

app_name = 'polls'

urlpatterns = [
url(r'^$', views.index, name = 'index'),
url(r'^(?P<question_id>[0-9]+)/$', views.detail, name = "detail"),
url(r'^(?P<question_id>[0-9]+)/results/$', views.results, name = "results"),
url(r'^(?P<question_id>[0-9]+)/vote/$', views.vote, name = "vote"),
]
{% for question in latest_question_list %}
<li><a href="{% url 'polls:detail' question.id %}">{{ question.question_text }}</a></li>
{% endfor %}


반응형
Comments