Django中的login_需要decorator和urlresolver.reverse()

Django中的login_需要decorator和urlresolver.reverse(),django,django-views,Django,Django Views,我有几个视图需要@login\udecorator。我将使用django.core.urlResolver.reverse()函数重定向到它们 我在url.py中写道: urlpatterns = ('myapp.views', '^(?P<key>[-a-zA-Z0-9]+)/some-operation/$', 'some_operation'), ) 这样,某些操作查看功能需要@login\u装饰器 Django显示以下错误: Reverse for '<dja

我有几个视图需要
@login\u
decorator。我将使用django.core.urlResolver.reverse()函数重定向到它们

我在url.py中写道:

urlpatterns = ('myapp.views',
    '^(?P<key>[-a-zA-Z0-9]+)/some-operation/$', 'some_operation'),
)
这样,
某些操作
查看功能需要
@login\u
装饰器

Django显示以下错误:

Reverse for '<django.contrib.auth.decorators._CheckLogin object at 0x866782c>' with arguments '()' and keyword arguments '{'key': u'ab9d7x'}' not found.
未找到参数为“()”且关键字参数为“{'key':u'ab9d7x'}”的“”的反向。
Django似乎正试图为login_所需的decorator函数找到反向匹配。如何避免这个问题?

我找到了另一种解决方法。像这样使用“命名url”:

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

我已经找到了另一种方法来做这件事。像这样使用“命名url”:

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

如何在@login\u required decorator中传递额外的KWARG?我做不到你用的是什么版本的Django?这可以通过url templatetag实现吗?如何在@login\u required decorator中传递额外的Kwarg?我做不到你用的是什么版本的Django?这可以通过使用url templatetag实现吗?
reverse('myapp-some-operation', kwargs={'key': item.key})