2016-07-16 8 views
0

, 그리고이 오류가 점점 계속 : 내 응용 프로그램 내 URS에서/views.py장고 오류 리디렉션 : NoReverseMatch 내가 장고 1.9 함께 일하고 있어요

from django.shortcuts import redirect 
... 

def class_sheet(request, class_name): 
    get_object_or_404(EnclaveClass, pk=class_name) 
    return HttpResponse("this is %s" % class_name) 

def create_class(request): 
return redirect('class_sheet', class_name='d') 

NoReverseMatch at /class/create/

Reverse for 'class_sheet' with arguments '()' and keyword arguments '{'class_name': 'd'}' not found. 0 pattern(s) tried: []

나는이이를 .py

urlpatterns = [ 
    ... 
    url(r'^create/$', views.create_class, name="create_class"), 
    url(r'^(?P<class_name>.*)/$', views.class_sheet, name="class_sheet"), 
    ... 
] 

내 기능에 이상이 있음을 나타내는 모든 게시물을 온라인에서 찾을 수 없었습니다. 고칠 방법이나 보완에 대한 조언을 주시면 감사하겠습니다.

+3

URL을 포함 할 때'namespace'를 지정 했습니까? 지. 'include ('app.urls', 네임 스페이스 = 'app')'? 그렇다면'app : class_sheet'를 사용하여이를 뒤집어서 사용해야합니다. –

+0

그게 효과가! 이름 공간은 제가 사용했던 튜토리얼에서 벗어난 곳입니다. 제안 해 주셔서 대단히 감사합니다. – Liu

답변

-1

이 URL에 대한 요청이 URL의 정규 표현식을 만족하는 경우 브라우저에서 CONSOLE을 확인 했습니까?

+0

리디렉션을 가져 와서/class/create로 이동하면 콘텐츠가 완벽하게 표시됩니다. (코드 스 니펫의 "작성"URL 패턴에서도 볼 수 있습니다.) – Liu

+0

실수로 class_sheet URL 패턴의 Regex를 확인했으며 "/ class/create /"URL과 일치해야합니다. 실제로 만들려는 URL 패턴은 무엇입니까? 어떤 예를들 수 있습니까? –

+0

P. 정규 표현식의 웹 사이트에서 URL의 정규식을 직접 확인할 수 있습니다. 그들 중 하나는 -> http://pythex.org/ –

0

이름 공간을 지정하지 않았습니다! create_class를

으로 변경하십시오.
def create_class(request): 
    return redirect('class:class_sheet', class_name='d') 

리디렉션이 작동합니다.

블라디미르 다니 롤프에게 감사의 말씀을 전합니다.

1

'app:class_sheet'을 사용해야합니다. 여기서 app은 을 포함하여 namespace입니다.

관련 문제