1. URL 별칭 사용하기
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
path('<int:question_id>/', views.detail, name='detail'),
]
- pybo/url.py에 name속성을 사용해서 별칭을 만들어준다.
- 이렇게 수정하면 /pybo/라는 주소에는 index라는 별칭이, /pybo/2/ 라는 주소에는 detail 이라는 별칭이 생긴다.
2. 템플릿에서 별칭사용하기
/*--- 생략 ---*/
{% for question in question_list %}
<li><a href="{% url 'detail' question.id %}">{{ question.subject }}</a></li>
{% endfor %}
/*--- 생략 ---*/
3. URL 중복방지
- 서로다른 앱에서 똑같은 별칭을 사용할 경우 중복오류가 발생할 수 있다.
- 이런 경우를 대비해서 pybo/urls.py에서 app_name 변수에 네임스페이스를 지정해준다.
from django.urls import path
from . imort veiws
app_name = 'pybo'
urlpatterns = [
path('', views.index, name='index'),
path('<int:question_id>/', views.detail, name='detail'),
]
/*--- 생략 ---*/
{% for question in question_list %}
<li><a href="{% url 'pybo:detail' question.id %}">{{ question.subject }}</a></li>
{% endfor %}
/*--- 생략 ---*/
- 네임스페이스를 지정하고나면 템플릿 페이지 요청시 다시 오류가 발생한다.
- 네임스페이스를 지정한 후에는 템플릿 페이지에서 별칭을 사용할때 방법이 달라진다.
- 여기서는 'pybo:detail' 로 사용해주면 된다.
위 문서는 이지스퍼블리싱에서 출간한 박응용님의 "점프투 장고"를 제가 공부하면서 요약한 내용입니다.
게시한 내용은 공부를 하면서 저만 알아볼 수 있게 요약한 부분들도 많으므로 부족한 내용은
직접 책을 구입하셔서 보시면 좋을 것 같습니다.
'Study > django' 카테고리의 다른 글
django - CSS (0) | 2021.09.25 |
---|---|
django - Answerform (0) | 2021.09.25 |
django - QuestionContent (0) | 2021.09.25 |
django - QuestionTitleList (0) | 2021.09.25 |
django - Admin (0) | 2021.09.25 |