我正在使用django-registration(v.0.8)来实现注册。我重写了post_activation_redirect,通过将?next = / my_next_page /添加到URL的末尾,将用户发送到他们最初请求的页面。
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(r'^app-sales-data/', include('arpu.urls', namespace="arpu")),
有没有一种好方法可以系统地调试这样的东西?我一遍又一遍地尝试了试验和错误,它似乎没有挖掘任何东西。
答案 0 :(得分:0)
对于reverse
,您需要指定URL Pattern Name
,而不是URL path
。所以,将'top-free-games'
更改为'top-free-apps'
,因为这是您在此处指定的网址的名称:
url(r'^top-free-games/$', TopFreeAppsView.as_view(), name='top-free-apps')