django의 login_required decorator 및 urlresolver.reverse ()
-
06-07-2019 - |
문제
나는 몇 가지 견해를 가지고 있습니다 @login_required
데코레이터. 그리고 나는 그들에게 리디렉션을 위해 django.core.urlresolvers.reverse () 함수를 사용하겠습니다.
나는 urls.py로 썼다 :
urlpatterns = ('myapp.views',
'^(?P<key>[-a-zA-Z0-9]+)/some-operation/$', 'some_operation'),
)
그리고 Views.py :
return HttpResponseRedirect(
reverse('myapp.views.some_operation', kwargs={'key': item.key})
)
그렇게 some_operation
보기 기능은 있습니다 @login_required
데코레이터.
장고는 다음 오류를 보여줍니다.
Reverse for '<django.contrib.auth.decorators._CheckLogin object at 0x866782c>' with arguments '()' and keyword arguments '{'key': u'ab9d7x'}' not found.
Django는 Login_Required Decorator 기능에 대한 리버스 일치를 찾으려고하는 것 같습니다. 이 문제를 피하려면 어떻게해야합니까?
해결책
나는 이것을 할 수있는 또 다른 방법을 찾았습니다 장고 문서. 다음과 같이 "명명 된 URL"을 사용하십시오.
urlpatterns = ('myapp.views',
url('^(?P<key>[-a-zA-Z0-9]+)/some-operation/$', 'some_operation', name='myapp-some-operation'),
)
그리고
reverse('myapp-some-operation', kwargs={'key': item.key})
제휴하지 않습니다 StackOverflow