아래와 같이 URLconf가 있으며 'foo'
및 'bar'
이 page_slug
에 대한 유효한 값이라고 가정합니다.추가 옵션이 포함 된 Django URL 반전
urlpatterns = patterns('',
(r'^page/(?P<page_slug>.*)/', 'myapp.views.someview'),
)
그런 다음 아래 URL을 사용하여 URL을 재구성 할 수 있습니까?
>>> from django.core.urlresolvers import reverse
>>> reverse('myapp.views.someview', kwargs={'page_slug': 'foo'})
'/page/foo/'
>>> reverse('myapp.views.someview', kwargs={'page_slug': 'bar'})
'/page/bar/'
하지만 URLconf를 어떻게 변경합니까?
>>> from django.core.urlresolvers import reverse
>>> reverse('myapp.views.someview', kwargs={'page_slug': 'foo'})
'/foo-direct/'
>>> reverse('myapp.views.someview', kwargs={'page_slug': 'bar'})
'/my-bar-page/'
그러나, 이것은 NoReverseMatch
예외가 발생합니다 :
urlpatterns = patterns('',
(r'^foo-direct/', 'myapp.views.someview', {'page_slug': 'foo'}),
(r'^my-bar-page/', 'myapp.views.someview', {'page_slug': 'bar'}),
)
나는이 결과를 기대했다. 나는 무언가를하려고 노력하고 있다고 생각합니다. 내가 원하는 것을 성취 할 수있는 더 좋은 방법에 대한 제안?
명명 된 URL은 URL 구조의 세부 사항 (캡슐화 및 모든 것)에 대해 알아야 할 링크가있는 다른 앱을 원하지 않기 때문에 옵션이 아닙니다.
을 의미합니까? 에러 메시지? 그렇다면, 무엇? –
'NoReverseMatch' 예외를 throw합니다. –
새 사실로 질문을 업데이트하십시오 - 유용한 정보를 주석으로 추가하지 마십시오. –