작성
·
168
답변 1
1
안녕하세요.
질문 확인했습니다.
질문자님이 알고 계시는 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 기능이 정상적으로 작동되는 것입니다.
답변이 도움 되셨으면 좋겠네요.
좋은하루 보내시구요!
감사합니다-
감사합니다... 별것 아닌 질문에도 ..ㅠㅠ
연휴 잘보내세요!