Вопрос

У меня есть несколько мнений с @login_required декоратор.И я собираюсь использовать функцию django.core.urlresolvers.reverse() для перенаправления на них.

Я написал в urls.py:

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

и в views.py:

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

такой , что some_operation функция просмотра имеет @login_required декоратор.

Django показывает следующую ошибку:

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

Похоже, что Django пытается найти обратное соответствие для функции login_required decorator.Как мне избежать этой проблемы?

Это было полезно?

Решение

Я нашел другой способ сделать это с помощью Документация Django.Используйте "именованный URL" следующим образом:

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

и

reverse('myapp-some-operation', kwargs={'key': item.key})
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top