Django - resolve_url redirect 등 url mapped 함수 가져오기

보통 urls.py 파일에 여러가기 view 의 주소를 많이 지정해 둔다.

코딩중에 해당 페이지로 이동하거나 render 를 하고 싶다면 이 view 에 맵핑된 주소를 불러와야 하는데 주소를 바로 주게 되면 혹시 변경이 생기는 경우, 그냥 소스 전체를 찾아서 수정해야 한다. 

 

이를 방지하기 위해 url 에 접근하는 함수가 몇개 있는데,

 

결론은 그냥 

resolve_url
redirect 

이정도 쓰면 될듯

from django.shortcuts import resolve_url, redirect

resolve_url('blog:post_detail', 10) # '/blog/10/'
redirect('blog:post_detail', 10)

 

장고 템플릿에서 쓰는 방법은 다들 아는 바와 같이 아래처럼 사용하면 된다.

<li><a href="{% url 'blog:post_detail' post.id %}">{{ post.title }}</a> </li>

 

이 내용은 아래 원본글에서 더 자세하게 보세요. 

https://wayhome25.github.io/django/2017/05/05/django-url-reverse/

 

URL Reverse, 아는 사람은 꼭 쓴다는 get_absolute_url() · 초보몽키의 개발공부로그

특정 모델에 대한 Detail뷰를 작성할 경우, Detail뷰에 대한 URLConf설정을 하자마자, 필히 get_absolute_url설정을 해주세요. 코드가 보다 간결해집니다

wayhome25.github.io

reverse 로 검색한 결과화면 ㅋㅋ 어깨 스트레칭하자 자주

Hanna Auramenka 님의 사진, 출처: Pexels