Domanda

Ho diverse visualizzazioni con il decoratore @login_required . E userò la funzione django.core.urlresolvers.reverse () per il reindirizzamento a loro.

Ho scritto in urls.py:

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

e in views.py:

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

tale che la funzione di visualizzazione some_operation ha il decoratore @login_required .

Django mostra il seguente errore:

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

Sembra che Django stia cercando di trovare una corrispondenza inversa per la funzione decoratore richiesta da login_required. Come posso evitare questo problema?

, 'some_operation'), )

e in views.py:

<*>

tale che la funzione di visualizzazione some_operation ha il decoratore @login_required .

Django mostra il seguente errore:

<*>

Sembra che Django stia cercando di trovare una corrispondenza inversa per la funzione decoratore richiesta da login_required. Come posso evitare questo problema?

È stato utile?

Soluzione

Ho trovato un altro modo per farlo dalla Documentazione di Django . Usa " url denominato " in questo modo:

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

e

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

e

<*>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top