Question

J'ai plusieurs vues avec le décorateur @login_required . Et je vais utiliser la fonction django.core.urlresolvers.reverse () pour les rediriger vers eux.

J'ai écrit dans urls.py:

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

et dans views.py:

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

tel que la fonction de vue some_operation possède le décorateur @login_required .

Django affiche l'erreur suivante:

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

Il semble que Django tente de trouver une correspondance inverse pour la fonction décorateur login_required. Comment puis-je éviter ce problème?

, 'some_operation'), )

et dans views.py:

<*>

tel que la fonction de vue some_operation possède le décorateur @login_required .

Django affiche l'erreur suivante:

<*>

Il semble que Django tente de trouver une correspondance inverse pour la fonction décorateur login_required. Comment puis-je éviter ce problème?

Était-ce utile?

La solution

J'ai trouvé un autre moyen de le faire grâce à documentation Django. . Utilisez " URL nommée " comme ceci:

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

et

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

et

<*>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top