[Django] 튜토리얼 namespace 에러

마이구미·2021년 11월 29일
0

다시 볼 것

목록 보기
1/6
post-thumbnail

에러

장고 튜토리얼을 진행하고 있는데 다음과 같은 에러 메세지가 발생했다. 뜬금없이 namespace라는 것이 나와 공식사이트에서 검색해보았다.

'polls' is not a registered namespace

해결

polls/urls.py 안에 app_name = "polls" 을 적어주면 된다.

namespace란 무엇인가

img

공식문서에서 검색한 결과에 따르면 URL 네임스페이스를 사용하면 다른 응용 프로그램에서 같은 url을 사용할 경우, 같은 응용 프로그램의 많은 인스턴스가 있는 경우 url을 고유하게 구분하고 reverse 시킬 수 있다고 한다.

즉, 같은 이름이 존재하더라도 의도한 url로 찾아갈 수 있게 해주는 부분인 것 같다.

application namespace

배포 중인 애플리케이션의 이름을 설명하는 것이다. 단일 애플리케이션의 모든 인스턴스는 동일한 애플리케이션 네임스페이스를 갖는다. 예를 들어 Django의 admin 애플리케이션에는 'admin'이라는 예측 가능한 애플리케이션 네임스페이스가 있다.

instance namespace

애플리케이션의 특정 인스턴스를 식별한다. instance namespace는 전체 프로젝트에서 고유해야 한다. 그러나 instance namespace는 application namespace와 동일할 수 있다. 애플리케이션의 기본 인스턴스를 지정하는 데 사용된다. 예를 들어 기본 Django admin 인스턴스에는 'admin'의 인스턴스 네임스페이스가 있다.

네임스페이스 URL은 ':' 연산자를 사용하여 지정된다. 예를 들어 admin 응용 프로그램의 기본 색인 페이지는 'admin:index'를 사용하여 참조된다. 이는 'admin'의 네임스페이스와 'index'의 명명된 URL을 나타낸다.

네임스페이스도 중첩될 수 있다. 이름이 지정된 URL 'sports:polls:index'는 최상위 네임스페이스 'sports' 내에 정의된 'polls' 네임스페이스에서 'index'라는 패턴을 찾는다.

profile
마이구미 마시쪙

0개의 댓글