return redirect(post) 에서 왜 post_detail로 넘어가는지 이해가안됩니다.
안녕하세요!
return redirect(post) 에서 왜 post_detail로 넘어가는지 이해가안됩니다.

post = form.save()에서
form data들이 DB에 저장이 되고
그것을 받아서 redirect를 하면 왜
post_detail로 화면이 넘어가나요?
그냥 form.save()가 데이터를 저장하면서 return값이 그 DB에대한 url값이라고 보면될까요?
답변 1
1
안녕하세요.
redirect 함수는 내부 구현에서 resolve_url을 활용해서 이동할 주소를 얻습니다.
관련코드 : https://github.com/django/django/blob/3.2.15/django/shortcuts.py#L41
그리고 resolve_url 에서는 인자로 받는 객체에서 get_absolute_url 메서드를 지원하면 이 함수를 호출하여 url 문자열을 획득하고, 그 즉시 리턴하게 됩니다. get_absolute_url 메서드를 지원하지 않으면 URL Reverse를 진행하게 됩니다.
그러니
redirect("blog:post_list") 와 같이 호출이 된다면 "blog:post_list" 문자열에서는 당연히 get_absolute_url 메서드가 없으니 그대로 URL Reverse를 진행하게 되는 것이구요.
redirect(post) 호출 시에 Post 모델에서 get_absolute_url 을 구현하지 않았다면, post는 문자열도 아니기에 오류가 발생하게 됩니다.
마지막으로 redirect(post) 호출 시에 Post 모델에서 get_absolute_url이 구현되어있다면, 이 메서드를 호출해서 반환된 URL 문자열 주소로 이동을 하게 됩니다.
충분한 답변이 되었을까요?
궁금증이 해결되셨다면 본 질문의 상태를 해결됨으로 변경 부탁드립니다.
화이팅입니다. :-)
안녕하세요.
0
48
1
[OneToOne Field Demo] get_user_model() 메서드를 활용해야 하는 이유?
0
273
1
useEffect 훅에서 else 유무에 따른 결과
0
211
1
useAxios 훅의 dependency array 설정
0
245
1
useEffect에서 변수 업데이트 관련 질문
0
381
1
rest_framework.generics.CreateAPIView의 model 속성 유무
0
267
1
bootstrap4
0
470
4
리뉴얼 강의가 오픈이 되면 기존 강의는 더이상 못보는걸까요
1
364
1
admin form에서 앞선 필드 선택 후 다른 필드 select widget 구성하는 방법
0
573
3
useState는 필수일까요?
0
262
1
python manage.py makemigrations instagram 시 created_at default 오류가 발생합니다.
0
599
4
Django allauth를 사용한 소셜 로그인 시 에러
0
654
1
프로젝트명 변경 뒤, 디버그툴바+디버그모드 사용 시 에러
0
554
2
useLocalStorage() 함수 사용여부
0
228
1
django에 LOGIN_URL = '/accounts/login/'의 의미?
0
448
1
리듀서의 의미 재확인
0
430
1
simple-jwt Refresh Token 사용 노하우
0
897
2
docker compose 를 통한 배포 관련 오류 문의
0
670
1
파이썬 속도 장고 관련 궁금한게 있습니다.
0
364
1
is_like_user
0
233
1
related_name 오류
0
273
1
re_path 오류
0
258
1
re_path url
0
250
1
No post matches the given query
0
661
2





