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

kokomo님의 프로필 이미지
kokomo

작성한 질문수

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트

(강의 명: 회원가입)회원가입 후 계정은 생기는데 페이지연결이 안되요..

작성

·

373

0

VS CODE로 따라 하고 있습니다~
success_url부분에서 import 해오는 부분이 자동으로 되셔가지고 안보여서 제가 임의로 입력했는데
 
from django.conf import settings
 
이거 맞을까요?
실행이 제대로 안되는거 보니까 이게 틀린거 같아서요..
회원가입 후에 계정이 생기긴 하는데 페이지가 404오류로 넘어갑니다..
 

답변 2

0

kokomo님의 프로필 이미지
kokomo
질문자

친절한 답변 감사합니다^^

으.. 찾아보니 url patterns에서 슬래시를 하나 빼먹었더라고요. 그부분은 잘 해결되었습니다.

 

로그아웃까지 들으면서 수정을 계속 해보고 있는데 또 궁금한점이 있어서 추가질문 드립니다.

회원가입 후 자동 로그인이 되게 하는 LOGIN_REDIRECT_URL을 써서 

실행을 해 보았는데

회원가입한 해당 계정이 아닌 관리자 계정 프로필로 이동이 되고(allieus), 관리자 계정이 로그아웃 되어 있으면 다시 로그인 페이지가 뜹니다.

 

관리자 계정과 부 계정의 프로필 링크는 

http://127.0.0.1:8000/accounts/profile/ 

 

으로 링크는 모두 같은데

위의 문제는 어디가 잘못된 것일까요?! ㅠㅠ 답변부탁드립니다.

이진석님의 프로필 이미지
이진석
지식공유자

안녕하세요.

예상하시는 상황을 좀 더 정리해서 말씀해주실 수 있으실까요? 제가 모든 맥락을 한 번에 기억하고 파악할 수 없기 때문입니다. 실습하신 코드도 같이 보여주시면 좋습니다.

ex) 어떤 코드 상황에서 어떻게 동작하기를 기대하시는 데, 어떻게 다르게 동작하는 것 같다.

kokomo님의 프로필 이미지
kokomo
질문자

넵 실행화면 첨부하겠습니다.

아래 창은 subuser로 회원가입을 하면 뜨는 창인데, 바로 프로필이 뜨지 않고 아래와 같은 창이 뜹니다.

회원가입을 하고 바로 가입한 subuser 프로필 창이 떠야 하는데

링크를 보시면 account/profile로 이동을 하였지만 admin계정이 로그인이 되어 있지 않아서 다시 위와 같은 창이 뜹니다.

그리고 만약에 admin 계정으로 로그인이 되어있는 상황에서 회원가입을 하면 admin프로필로 이동합니다.ㅠ

이진석님의 프로필 이미지
이진석
지식공유자

회원가입과 로그인은 별개의 프로세스입니다.

profile 뷰에서 login_required 장식자가 적용되어있을 경우, 로그인 상황이 보장되어야만 profile 뷰가 호출이 됩니다. 로그인 상황이 아니라면 로그인 페이지인 settings.LOGIN_URL 주소로 이동이 됩니다.

admin 계정으로 로그인이 된 상황에서는 로그인이 되었기 때문에 profile 뷰가 호출이 되는 것입니다.

회원가입 직후에는 로그인이 안 된 상황기이에, 프로필 주소로 접근하면, login_required 장식자로 인해 로그인 페이지로 이동이 되었던 것입니다.

0

이진석님의 프로필 이미지
이진석
지식공유자

안녕하세요.

장고 코드내에서 모든 settings 는 쓰신 대로 django.conf 내의 settings를 참조하는 것이 맞습니다. 임포트 잘 하셨구요.

signup 뷰에 지정된 success_url 은 지정된 Form 처리가 성공적으로 끝났을 때 이동하는 주소입니다. success_url 로 지정된 값은 settings.LOGIN_URL 인데요. 이 값의 디폴트 값은 "/accounts/login/" 입니다.

보여주신 Page not found 에러 화면에서 이동한 주소가 /accounts/login/ 로 이동했으니 signup 처리가 정상적으로 끝나고, 지정된 success url 주소로 이동까지 잘 한 것입니다. 이동까지 했으니 signup 뷰의 역할은 끝났구요.

현재 /accounts/login/ 주소를 처리하는 뷰가 없어서 발생하는 오류입니다. 이전 에피소드에서 로그인을 구현하셨을 텐데요. 혹시 로그인을 구현하신 주소가 오타 등의 이유로 /accounts/login/ 이 아니실 수 있을 듯 합니다.

현재 로그인 주소를 확인해보시겠어요?

화이팅입니다. :-)

kokomo님의 프로필 이미지
kokomo

작성한 질문수

질문하기