Pregunta

Tengo varias vistas con el decorador @login_required . Y voy a usar la función django.core.urlresolvers.reverse () para redirigirlos a ellos.

Escribí en urls.py:

urlpatterns = ('myapp.views',
    '^(?P<key>[-a-zA-Z0-9]+)/some-operation/

y en views.py:

return HttpResponseRedirect(
     reverse('myapp.views.some_operation', kwargs={'key': item.key})
)

de modo que la función de visualización some_operation tenga un decorador @login_required .

Django muestra el siguiente error:

Reverse for '<django.contrib.auth.decorators._CheckLogin object at 0x866782c>' with arguments '()' and keyword arguments '{'key': u'ab9d7x'}' not found.

Parece que Django está tratando de encontrar una coincidencia inversa para la función decoradora login_required. ¿Cómo me evito este problema?

, 'some_operation'), )

y en views.py:

<*>

de modo que la función de visualización some_operation tenga un decorador @login_required .

Django muestra el siguiente error:

<*>

Parece que Django está tratando de encontrar una coincidencia inversa para la función decoradora login_required. ¿Cómo me evito este problema?

¿Fue útil?

Solución

He encontrado otra forma de hacerlo desde documentación de Django . Utilice " nombre url " así:

urlpatterns = ('myapp.views',
    url('^(?P<key>[-a-zA-Z0-9]+)/some-operation/

y

reverse('myapp-some-operation', kwargs={'key': item.key})
, 'some_operation', name='myapp-some-operation'), )

y

<*>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top