2016-03-18 14 views
0

login-redirectページに移動してユーザーをログインさせようとしていますが、ユーザーのプロフィールページにリダイレクトされています。私はこの質問が初めて聞かれたのではないことを理解していますが、私は他のすべての答えを試しましたが、なぜこれが私にとってうまくいかないのか分かりません。Djangoはkwargsを持つ他のアプリのURLにリダイレクトします

urls.py

urlpatterns = [ 
    url(r'^login/$', auth_views.login, {'template_name': 'login.html'}, name="login"), 
    url(r'^login/redirect/$', account_redirect, name="account-redirect"), 
    url(r'^logout/$', auth_views.logout, {'next_page': 'home'}, name="logout"), 
    url(r'^stores/', include('stores.urls', namespace='store_app')) 
] 

views.py

def account_redirect(request): 
    # tried both to see if it would help... 
    # return HttpResponseRedirect(reverse('store_app:account-landing', kwargs= {"pk":request.user.pk,"name":request.user.vendor.name})) 
    return redirect('store_app:account-landing', pk=request.user.pk, name=slugify(request.user.vendor.name)) 

SERVに基づいて格納/ urls.py

urlpatterns = [ 
    url(r'^account/(?P<pk>\d+)/(?P<name>\w+)/$', AccountLanding.as_view(), name="account-landing"), 
] 

関連する質問への他の回答もありますが、これはうまくいくはずですが、そうではありません。私は次のエラーを取得するログインしlogin/redirect/に取得した後:

Reverse for 'account-landing' with arguments '()' and keyword arguments '{'pk': 1, 'name': u'Fake Company'}' not found. 1 pattern(s) tried: [u'stores/account/(?P<pk>\\d+)/(?P<name>\\w+)/$'] 

私は理解していない、それは右のパターンを試し、右の引数を持っていますか?では、なぜそれは機能しませんか? 「偽当社は、」例えば、データまたは誤りである場合、これが唯一の問題は次のようになります。チャンスはあなたがあなたのURL

^account/(?P<pk>\d+)/(?P<name>[\w-]+)/$ 

注意にそれを含める必要があるので、

答えて

1

slugifyはハイフンにスペースを有効にする傾向がありますコメントアウトされた行を使用していたときに表示されたものが表示されています

なぜなら、slugifyの理由は、urlにはスペースを入れることができず、代わりに%20に変わってしまいます。

+0

今は素晴らしい作品ですが、なぜ私はそれについて考えなかったのか分かりません。そして、はい、私が使った線は実際にはコメントアウトされていませんでした。ありがとう! – thefoxrocks

+0

@thefoxrocks - 心配しないで、お楽しみください! – Sayse

関連する問題