url reverse 설계
267
작성한 질문수 17
강사님 안녕하세요.
accounts에서 회원가입, 로그인, 로그아웃, 프로필을 설정 중인데요,
아래와 같이 url 링크를 설정해줄 시,
어느 앱의 링크인지 구별을 해주기 위해 아래와 같이 작성해야 한다고 생각했지만 작성 후 NoReverseMatch 에러가 뜹니다.
{% url "accounts:profile" %}
어떻게 전체 레이아웃에서 {% url 'profile' %}만 가지고 accounts/profile로 이동이 가능한가요?
감사합니다.

답변 3
1
안녕하세요.
url reverse 시에 콜론(:) 앞에 입력하는 이름을 앱의 namespace라고 하며, 이를 사용하기 위해서는
그 앱의 urls.py 내에 app_name 설정을 하셔야 합니다.
accounts/urls.py 내에 app_name 설정을 하지 않으시면 {% "profile" %} 로 쓰셔야 하며,
accounts/urls.py 내에 app_name = "accounts" 설정을 하셨다면, 필히 {% url "accounts:profile" %} 로만 쓰셔야 합니다.
0
안녕하세요.
장고의 URL Reverse는 직접적으로 view 함수를 찾는 것이 아니라, urlpatterns에 등록된 path를 찾습니다.
accounts/urls.py 이 다음과 같이 되어있을 때,
urlpatterns = [
path("profile/", views.profile, name="profile"),
]
{% url "profile" %} 과 같이 쓰시면 등록된 path 중에 name이 "profile"인 것을 찾아서, 역으로 url 문자열을 계산해내는 것입니다.
현재 프로젝트에 등록된 모든 urlpatterns 목록을 확인코자하신다면 django-extensions 라이브러리에서 제공되는 show_urls 명령을 써보세요.
https://django-extensions.readthedocs.io/en/latest/command_extensions.html?highlight=show_urls#command-extensions
그리고 urlpatterns에는 모든 앱들의 path들이 list로 하나로 합쳐서 등록이 되어있구요. url reverse 시에 리스트에 등록된 첫 path부터 순차적으로 부합여부를 체킹하게 됩니다.
0
답변 감사합니다 선생님!
다만 제 질문은 {% url "profile" %}만으로 장고에서 어떻게 accounts/profile url로 인식하는지가 궁급했습니다.
Instagram에 profile링크가 있다면 instagram/profile 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
266
1
bootstrap4
0
470
4
리뉴얼 강의가 오픈이 되면 기존 강의는 더이상 못보는걸까요
1
363
1
admin form에서 앞선 필드 선택 후 다른 필드 select widget 구성하는 방법
0
572
3
useState는 필수일까요?
0
261
1
python manage.py makemigrations instagram 시 created_at default 오류가 발생합니다.
0
597
4
Django allauth를 사용한 소셜 로그인 시 에러
0
654
1
프로젝트명 변경 뒤, 디버그툴바+디버그모드 사용 시 에러
0
552
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
272
1
re_path 오류
0
258
1
re_path url
0
249
1
No post matches the given query
0
660
2





