2014-05-15 2 views
0

나는 이것을 이해할 수 없다. 여기에 여기에 템플릿의 Django URL - NoReverseMatch at/

url(r'^(P<categoryName>[a-z]+)/$', views.displayCategory, name='displayCategory'), 

urls.py 내 응용 프로그램에서 내가 가지고있는 URL 패턴 내 프로젝트의 글로벌 urls.py입니다 :

from django.conf.urls import patterns, include, url 
from django.contrib import admin 
admin.autodiscover() 

urlpatterns = patterns('', 
    url(r'^$', include('publicworkspace.urls', namespace="publicworkspace")), 
    url(r'^createproblem/', include('createproblem.urls', namespace="createproblem")), 
    url(r'^publicproblem/', include('publicproblem.urls', namespace="publicproblem")), 
    url(r'^admin/', include(admin.site.urls)), 
) 

그리고 여기 내 템플릿에 만들려는 링크입니다 < A HREF = "{% URL이 'publicworkspace : displayCategory' '수학'%}"> 수학

매번 내가, 오류가 일반적으로 다음

NoReverseMatch at/
Reverse for 'displayCategory' with arguments '(u'math',)' and keyword arguments '{}' not     found. 1 pattern(s) tried: [u'$(P<categoryName>[a-z]+)/$'] 
+0

이 URL을 글로벌 URL로 가져 오는 방법은 무엇입니까? 또는 이것은 글로벌 URL입니까? – zymud

+0

방금 ​​내 글로벌 주소로 내 질문을 업데이트했습니다. – lastmjs

답변

2

첫 번째 urlpatterns 행의 정규식 r'^$'은 아마도 원하는 내용이 아닙니다. 빈 문자열과 일치합니다. 내가 urlpatterns의 맨 아래에 해당 줄을 이동

urlpatterns = patterns('', 
    url(r'^createproblem/', include('createproblem.urls', namespace="createproblem")), 
    url(r'^publicproblem/', include('publicproblem.urls', namespace="publicproblem")), 
    url(r'^admin/', include(admin.site.urls)), 
    url(r'', include('publicworkspace.urls', namespace="publicworkspace")), 
) 

참고 :

나는 다음과 같은 제안한다. 당신이 상단에 그것을 유지한다면 그것은 항상 일치 할 것이고 당신의 다른 URL 패턴은 결코 보지 않을 것입니다 (장고는 첫 번째 일치합니다).

0

URL 패턴에 이름이 지정된 캡처가 있지만 값을 할당 할 이름의 템플릿 URL을 말하지 않습니다.

대신을 시도해보십시오

< a href="{% url 'publicworkspace:displayCategory' categoryName='math' %}"> 
+0

작동하지 않았습니다. 이제이 오류가 발생합니다 : NoReverseMatch at/ 'displayCategory'에 대해 '()'및 키워드 인수 '{u'categoryName': u'math '}'을 (를) 찾을 수 없습니다. 1 패턴 시도 : [u '$ (P [a-z] +) /'] – lastmjs

1
url(r'^$', include('publicworkspace.urls', namespace="publicworkspace")), 

문제가 여기에있다. 시도 :

url(r'^', include('publicworkspace.urls', namespace="publicworkspace")), 

설명 : $ - 끝 - 문자열 일치하는 문자를, 당신이 당신의 URL이 종료 될 때 둘 필요가 있도록.

관련 문제