2013-07-09 22 views
1

我使用django註冊(v.0.8)來實現註冊。我忽略了post_activation_redirect,通過將?next =/my_next_page /添加到URL的末尾,將用戶發送到他們最初請求的頁面。重寫後Django noreversematch問題post_activation_redirect

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")), 

有沒有好的辦法來系統調試這樣的東西?我試過反覆試驗和錯誤,它似乎沒有挖出任何東西。

回答

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') 
+0

謝謝。這是一個錯字,但不是核心問題。我進行了更改,但仍得到:未找到參數'()'和關鍵字參數'{}'的'top-free-apps'的反轉。 – user2562272

+0

應該不是「arpu:top-free-apps」嗎? – karthikr

+0

是的,明白了。非常感謝! – user2562272