1

django-registration(v.0.8) を使用して登録を実装しています。post_activation_redirect をオーバーライドして、URL の末尾に ?next=/my_next_page/ を追加することで、最初に要求したページにユーザーを誘導しました。

def post_activation_redirect(self, request, user):
        if 'redirect' in request.GET:
            return request.session['redirect'], (), {}
        else:
            return 'top-free-games', (), {}

これは、リダイレクトが定義されている場合は正常に機能しますが、未定義の場合は NoReverseMatch エラーが発生します。

NoReverseMatch at /accounts/activate/d66aaee8a3411ab7a5e495dd024f00a91cd00bec/
Reverse for 'top-free-games' with arguments '()' and keyword arguments '{}' not found.

私の urls.py は次のとおりです。

urlpatterns = patterns('',
    url(r'^$', TopAppsView.as_view(), name='index'),
    url(r'^top-free-games/$', TopFreeAppsView.as_view(), name='top-free-apps'),
    ....

これはアプリであり、URL は次の行を介してインポートされます。

url(r'^app-sales-data/', include('arpu.urls', namespace="arpu")),

このようなものを体系的にデバッグする良い方法はありますか? 試行錯誤を繰り返しましたが、何も掘り下げていないようです。

4

1 に答える 1

0

の場合、ではなくreverseを指定する必要があります。ここで指定した URL の名前なので、次のように変更します。URL Pattern NameURL path'top-free-games''top-free-apps'

url(r'^top-free-games/$', TopFreeAppsView.as_view(), name='top-free-apps')
于 2013-07-09T13:49:51.137 に答える