user_id
ログインビューから別のビューにintパラメータ()を渡したい。それは内で可能HttpResponseRedirect
ですか?私はこのようなことを試みます:
return HttpResponseRedirect("/profile/?user_id=user.id")
私のurlconfは:
(r'^profile/(?P<user_id>\d+)/$', '...')
しかし、それが正しい方法かどうかはわかりません。助言がありますか?
user_id
ログインビューから別のビューにintパラメータ()を渡したい。それは内で可能HttpResponseRedirect
ですか?私はこのようなことを試みます:
return HttpResponseRedirect("/profile/?user_id=user.id")
私のurlconfは:
(r'^profile/(?P<user_id>\d+)/$', '...')
しかし、それが正しい方法かどうかはわかりません。助言がありますか?
作成した URL が urlconf の URL と一致しないため、これは明らかに正しい方法ではありません。
これを行う正しい方法は、Django に頼ることです。URL 定義に名前を付ける場合:
urlpatterns += patterns('',
url(r'^profile/(?P\d+)/$', ' ...', name='profile'),
)
次にdjango.core.urlresolvers.reverse
、引数を使用してその URL を生成するために使用できます。
redirect_url = reverse('profile', args=[user.id])
return HttpResponseRedirect(redirect_url)
URL では arg ではなく kwargs を使用する方がよいことに注意してください。
最後に、次のようにして上記の回答を組み合わせました。
url = reverse('profile', kwargs={ 'user_id': user.id })
return HttpResponseRedirect(url)
と
url(r'^profile/(?P<user_id>\d+)/$', '...', name='profile')
そしてそれは完璧に機能しました。
ありがとう!
それは可能ですが、URL を逆にしてからリダイレクトすることをお勧めします。
url = reverse('name_of_url', kwargs={ 'user_id': user.id })
return HttpResponseRedirect(url)
URL conf に名前付きパラメーターが含まれていることを確認する必要があります (上記の例では、user_id
.