Django

장고 리다이렉트 #앵커태그(anchor tag )로 페이지의 특정 위치로 이동하기

daylee de vel 2021. 7. 12. 15:10

Issue:

추가 버튼을 누르면 def add_to_curriculum()이 실행되고 return redirect("hub:home") 으로 홈페이지로 보내지는 상황. 

홈페이지의 특정위치, 아래에 위치한 필터로 바로 이동시켜주고 싶음

urls.py에서 path('#home-filter', views.HomeView, name='home-filter'), 를 추가했지만 url encoding의 결과로 다음과 같이 url이 변경되고 (# -> %23) 기대한 위치 이동 효과가 적용되지 않음. 

[12/Jul/2021 14:43:23] "GET /%23home-filter HTTP/1.1" 200 16263

 

Solution:

urls.py 에서 url을 설정해주지 않고 hltml과 view에서 해결되도록 함

html에 앵커태그를 달아줌

index.html

<!--Filter-->
<a href="#home-filter"></a>
<div class="home-filter" id="home-filter"></div>
views.py

<기존의 redirection url>
return redirect("hub:home")


<변경 사항 적용한 url>
from django.http import HttpResponseRedirect

return HttpResponseRedirect('/#home-filter')