인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

퀀텀코더님의 프로필 이미지
퀀텀코더

작성한 질문수

작정하고 장고! Django로 Pinterest 따라만들기 : 바닥부터 배포까지

DB 정보 접근 및 장고 템플릿 내 for loop

reverser('accountapp:hello_world2')에서 reverse함수

작성

·

168

0

제가 알기로 reverse함수는 list타입에서 제공하는 함수라고

알고 있는데... 왜 HttpResponseRedirect(reverse(''))

에서 reverse함수를 써야 앱내부의 ''안에 접속할 수 있는건가요...?

답변 1

1

Hyong Sok Park님의 프로필 이미지
Hyong Sok Park
지식공유자

안녕하세요.
질문 확인했습니다.

질문자님이 알고 계시는 reverse 와 django 에서 제공하는 reverse 는 다른 기능입니다.

위와 같은 상황에서 사용되는 reverse 는,
말 그대로 list 안에 있는 값들을 역순으로 배치하는 기능을 가지고 있습니다.

하지만 저희가 강좌에서 사용하는 reverse 는 
django 에서 제공하는 별도의 기능으로,

django.urls 모듈 내에서 reverse 를 임포트 해오는 것을 볼 수 있습니다.

def reverse(viewname, urlconf=None, args=None, kwargs=None, current_app=None):
if urlconf is None:
urlconf = get_urlconf()
resolver = get_resolver(urlconf)
args = args or []
kwargs = kwargs or {}

prefix = get_script_prefix()

if not isinstance(viewname, str):
view = viewname
else:
*path, view = viewname.split(':')

실제로 내부 함수를 들여다보게 되면,
내용이 질문자님이 생각하신 reverse 의 기능과는 상이하다는 것을 알 수 있죠.

결과적으로,
저희가 사용하는 reverse 의 기능은 리스트 내용을 역순으로 재배치하는 기능이 아니라,
어떤 앱 에서, 어떤 라우트로 향하게 하는 주소를 역변환 하여 되돌려주는 기능을 가지고 있기 때문에,
HttpResponseRedirect 기능이 정상적으로 작동되는 것입니다.

답변이 도움 되셨으면 좋겠네요.
좋은하루 보내시구요!

감사합니다-

퀀텀코더님의 프로필 이미지
퀀텀코더
질문자

감사합니다... 별것 아닌 질문에도 ..ㅠㅠ

연휴 잘보내세요!

퀀텀코더님의 프로필 이미지
퀀텀코더

작성한 질문수

질문하기