나는 장고 프로젝트 인 training
과이 프로젝트 내부의 응용 프로그램이 tests
입니다. 폴더 구조는 다음과 같습니다 : 나는 정의이 패턴을Django 재사용 가능한 응용 프로그램의 URL 네임 스페이스 문제
django-training
tests
urls.py
training
urls.py
training/urls.py
내부의
url(r'^tests/', include('tests.urls', namespace='tests'))
그리고 tests/urls.py
안에 내가 이러한 패턴이 정의되어있다 :
url(r'^$', index, name='index'),
url(r'^(\d+)/$', view, name='view'),
url(r'^give-up/$', give_up, name='give_up'),
url(r'^(\d+)/result/$', result, name='result')
모든 것이 잘 작동합니다.
그러나 tests
앱을 장고 프로젝트에서 작동하는 재사용 가능한 앱으로 패키지하려면 어떻게해야합니까? URL 패턴은 어떻게해야합니까?
나는 tests/settings.py
파일을 만들고 ROOT_URLCONF
구성 변수를 tests/urls.py
으로 변경했습니다. 이 오류가 발생합니다 그러나이 작동하지 않습니다 :
Traceback (most recent call last):
File "/home/user/.virtualenvs/clean2/local/lib/python2.7/site-packages/tests/tests.py", line 173, in testContext
response = self.client.get(reverse('tests:view', args=(1,)))
File "/home/user/.virtualenvs/clean2/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 492, in reverse
key)
NoReverseMatch: u'tests' is not a registered namespace
오류가 매우 로직, reverse
정의 할 수있는 공간이 필요하기 때문에 (tests
을, 즉).
제 질문은 : 앱이 설치된 장고 프로젝트와 독립적으로 URL이 작동하도록 재사용 가능한 앱에 대해이 네임 스페이스를 어떻게 그리고 어디서 정의해야합니까?
당신은 몇 가지 테스트를하고 있으며,이 메인urls.py
에
tests's
URL을 추가하지 않았기 때문에 문제가 발생
역 호출을 볼 수 있습니까? –
@GamesBrainiac 함수 호출을 포함하여 오류의 전체 추적을 추가했습니다. – linkyndy