ここではDjango noobは概念を理解していないので、StackOverflowからの同様の質問の助けを得ることはできません。ベストプラクティス/フォーム提出後にDjangoでリダイレクトするのに役立つ
私は1つのドロップダウンだけのフォームを持っています。サブミットを押すと、ドロップダウンの値を次のページに転送する必要があります。そのため、ドロップダウンに応じてコンテンツがカスタマイズされます。
どのようにリダイレクトするのですか?引数のある次のページへのポストの後にはどのようにリダイレクトされますか?
views.py
def appStart(request, institution):
#so something with institution
return render(request, 'application/SectionStart.html', {'content':{'if you would like to contact me emial','[email protected]'}})
def ReviewMyView(request):
form_class = ApplicationSelectInstituation
if request.method == 'POST':
form = form_class(data=request.POST)
if form.is_valid():
for field, value in form.cleaned_data.items():
return HttpResponseRedirect(reverse('appStart', args=(value,)))
#return HttpResponseRedirect(reverse('view_blog', args=(), kwargs={'institution': value}))
#return HttpResponseRedirect(reverse('appStart'), {'institution': value})
#return HttpResponseRedirect(reverse('appStart'), institution=value)
return render(request, 'application/appmyreview.html', {
'form': form_class
})
urls.py
urlpatterns = [
url(r'^xxx/(?P<institution>\d+)$', appStart, name='appStart'),
url(r'^myapp$', ReviewMyView, name='review'),
]
更新
が答えてくれてありがとう、と思いますか? "(リバースHttpResponseRedirect" を使用することさえ正しけれ私はそれを取得していないので、私はDjangoの基礎を読み返す必要があります
def my_awesome_django_view(request):
form_class = ApplicationSelectInstituation
if request.method == "POST":
form = ApplicationSelectInstituation(data=request.POST)
if form.is_valid():
content_data = form.cleaned_data.get('institution_name').id
#Try 1 - page just refreshes
#redirect("nextapppage/"+str(content_data))
#Try 2 - Reverse for 'next_view' with arguments '()' and keyword arguments '{'institution_id': 3}' not found. 0 pattern(s) tried: []
#return HttpResponseRedirect(reverse('next_view',kwargs={'institution_id': content_data}))
#Try 3 - Reverse for 'next_view' with arguments '(3,)' and keyword arguments '{}' not found. 0 pattern(s) tried: []
return HttpResponseRedirect(reverse('next_view', args=[content_data]))
return render(request, 'application/appmyreview.html', {
'form': form_class
})
def the_next_view(request, *args, **kwargs):
print("I got to: the_next_view")
return render(request, 'application/SectionStart.html', {'content':{'if you would like to contact me emial','[email protected]'}})
urls.py
urlpatterns = [
url(r'^myapp$', my_awesome_django_view, name='myapp'),
url(r'^nextapppage/(?P<institution_id>\d+)/$', the_next_view, name='the_next_view'),
'(逆( 'fooは'))'私はそれを行う方法であるHttpResponseRedirectを返します。 –