상세글이에요.
상세글 내에서도 감정 버튼을 누를 수 있게끔 뒀지만,

 

누르는 순간, 메인 화면으로 나가게 돼요 🤔
이러한 오류는 HTML일 수도 있고, Back-end일 수도 있어요.

저는 일단 views.py로 갔어요.
main 페이지의 코드는 다 제가 짜서 짚이는 부분이 있거든요,, 👀

 

articles/views.py

    article.save()    
return redirect("articles:main") # 상세 페이지로 리다이렉션
아니나 다를까,, ㅎ
save() 하자마자 redirect로 main을 적어뒀네요.

redirect 주소를 다르게 해주면 될 거 같은데, 어떻게 코드를 완성시켜야 할지 모르겠더라고요.
그래서 튜터님께 찾아가서 상황을 설명드리고 답을 얻었습니다.

 

해결

    article.save()
            
# HTTP_REFERER -> 이전 페이지 URL 포함하는 HTTP 헤더를 의미
# request.META.get('HTTP_REFERER'): 현재 요청이 어느 페이지에서 왔는지 확인하는 것 (아까 request.get_full_path() 썼던 것과 같음)
referer = request.META.get('HTTP_REFERER')
if referer:
    # 예: 상세 페이지에서 왔으면 상세 페이지로 메인에서 왔으면 메인으로 이동
    return redirect(referer)
# referer가 없는 경우 메인 페이지로 리다이렉트(외부에서 들어왔을 시)
return redirect("articles:main")
referer를 추가해주었어요.


referer은 서버에 들어가서 관리자 모드를 실행하면 확인할 수 있어요.

referer = request.META.get('HTTP_REFERER')​

저 주소를 들고 오는 코드예요.

if referer:
    # 예: 상세 페이지에서 왔으면 상세 페이지로 메인에서 왔으면 메인으로 이동
    return redirect(referer)​


만약 referer이 있다면, 그 해당되는 path로 가게 되고요,

# referer가 없는 경우 메인 페이지로 리다이렉트(외부에서 들어왔을 시)
return redirect("articles:main")


없다면 메인 화면으로 가버리게끔 예외 처리를 해주었어요.


 

굿!

🐾Recent posts