decorador login_required e urlresolver.reverse () no Django
-
06-07-2019 - |
Pergunta
Eu tenho vários pontos de vista com decorador @login_required
. E eu vou usar django.core.urlresolvers.reverse () função para redirecionamento para eles.
eu escrevi em urls.py:
urlpatterns = ('myapp.views',
'^(?P<key>[-a-zA-Z0-9]+)/some-operation/$', 'some_operation'),
)
e em views.py:
return HttpResponseRedirect(
reverse('myapp.views.some_operation', kwargs={'key': item.key})
)
tal que função de visualização some_operation
tem @login_required
decorador.
Django mostra o seguinte erro:
Reverse for '<django.contrib.auth.decorators._CheckLogin object at 0x866782c>' with arguments '()' and keyword arguments '{'key': u'ab9d7x'}' not found.
Parece que o Django está a tentar encontrar correspondência inversa para a função decorador login_required. Como faço para me evitado com este problema?
Solução
Eu encontrei outra maneira de fazer isso a partir Django documentação . Use "chamado url" como esta:
urlpatterns = ('myapp.views',
url('^(?P<key>[-a-zA-Z0-9]+)/some-operation/$', 'some_operation', name='myapp-some-operation'),
)
e
reverse('myapp-some-operation', kwargs={'key': item.key})
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow