質問

@login_required デコレータを使用したビューがいくつかあります。そして、それらにリダイレクトするためにdjango.core.urlresolvers.reverse()関数を使用します。

urls.pyに書き込みました:

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

and 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デコレータ関数の逆マッチを見つけようとしているようです。この問題を回避するにはどうすればよいですか?

, 'some_operation'), )

and views.py:

<*>

some_operation ビュー関数には @login_required デコレーターがあります。

Djangoは次のエラーを表示します:

<*>

Djangoはlogin_requiredデコレータ関数の逆マッチを見つけようとしているようです。この問題を回避するにはどうすればよいですか?

役に立ちましたか?

解決

Djangoドキュメントから、これを行う別の方法を見つけました。 「名前付きURL」を使用このような:

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

and

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

and

<*>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top