2016-08-25 57 views
0

我正嘗試在signup後將用戶重定向到創建配置文件表單。由於我不知道如何使用動態url作爲LOGIN_REDIRECT_URL.I,因此嘗試將其鏈接到靜態視圖,然後最終使用redirect進行動態查看。它給出了錯誤Reverse for 'add_profile' with arguments '()' and keyword arguments '{'username': u'badguy'}' not found. 0 pattern(s) tried: []('badguy'確實是剛剛註冊的用戶的用戶名)。從錯誤中,它明確地將用戶名傳遞給視圖。我的代碼是:登錄後重定向時出現錯誤

settings.py 
LOGIN_REDIRECT_URL = '/prof-change/gdyu734648dgey83y37gyyeyu8g/' 

urls.py 
url(r'^prof-change/gdyu734648dgey83y37gyyeyu8g/',views.login_redir,name='login_redir'), 
url(r'^create-profile/(?P<username>\w+)/$',views.add_profile,name='create-profile'), 

views.py 
def login_redir(request): 
    user=get_object_or_404(User,username=request.user.username) 
    username=user.username 
    return redirect('add_profile',username=username) 

def add_profile(request,username): 
    userman=User.objects.get(username=username) 
    ........ 
    ........ 
+0

我已經下urls.py –

回答

0

當你反向的URL(包括您在使用一個URL名稱與redirect快捷方式),你應該使用URL模式,而不是視圖的名稱。 url模式有name='create-profile',所以請使用它。

redirect('create-profile', username=username) 
+0

補充它,這是因爲why.I我總是用我的視圖名稱以URL名稱所犯的錯誤的原因,所以我認爲是使用了前者的東西。 –

+0

如果我只使用一次視圖,那麼我喜歡爲URL模式使用相同的名稱。我發現它不那麼令人困惑,它避免了這樣的問題。 – Alasdair