최종주차 : 아임 트러블메이커 + 트러블슈팅러

김나현·2024년 9월 27일
1


수정

에러의 이유

URL 패턴의 순서는

중요할 수 있습니다. 특히 URL 패턴이 유사하거나 변수를 포함하는 경우, Django는 위에서부터 순차적으로 패턴을 매칭하므로,만약 URL 패턴이 겹치거나 유사한 부분이 있으면, Django는 첫 번째로 매칭되는 패턴을 선택하여 처리한다.
더 구체적인 URL 패턴을 상단에 두는 것이 좋습니다.

urlpatterns = [
    path("<str:username>/", views.UserProfileView.as_view()),
    path("signout/", views.UserSignoutView.as_view()),
]

이 경우, Django는 어떤 URL이 들어오든 <str:username>/에 해당하는 패턴을 먼저 찾습니다. 예를 들어, signout/ URL을 요청하면 Django는 먼저 <str:username>/ 패턴을 확인하므로 signout을 username으로 인식할 수 있습니다.

즉, signout/가 아니라 username='signout'인 프로필을 조회하는 것으로 해석될 수 있기 때문에 로그아웃 URL이 동작하지 않게 됩니다.

URL 패턴을 정의할 때는 더 구체적인 패턴을 먼저, 변수를 포함하는 패턴을 나중에 두어야 합니다.
이를 통해 URL 요청이 올바른 뷰와 연결되도록 할 수 있습니다.

profile
참 쉽죠? #개발계의 밥아저씨를 꿈꿉니다⋆⁺₊⋆ ☾⋆⁺₊⋆

0개의 댓글