문제

나는 몇 가지 견해를 가지고 있습니다 @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})
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top