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?

Foi útil?

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
scroll top