Djangoとreverse()
メソッドに関するドキュメントはたくさんあります。私は私の正確な問題を見つけることができない。Djangoは逆順で正しいURLを表示しません
url(r'ParentLists/$', main_page, name = "main_page"),
url(r'ParentLists/(?P<grade_level>.+)/$', foo, name = "foo")
と、このように二つの対応するビュー:
def main_page(request):
if request.method == 'POST':
grade_level = request.POST['grade_picked']
return HttpResponseRedirect(reverse('foo', args = (grade_level,)))
else:
return render(request, 'index.html', context = {'grade_list' : grade_list})
def foo(request, grade_level):
grade_level = request.POST['grade_picked']
parent_list = # get stuff from database
emails = # get stuff from database
return render(request, 'list.html', context = {'grade_list' : grade_list, 'parent_list' : parent_list})
ここ
、list.html
はちょうど学年とドロップダウンボックスが含まれている私の基本テンプレートindex.html
を拡張私はこのような2 URLconfのがあるとします。ユーザーが/ParentListsに行くと、main_page
ビューはドロップダウンボックスでindex.htmlをレンダリングします。
ユーザーがドロップダウンボックスから学年を選ぶ(5年生と言う)、テンプレートはフォームは提出しない、とmain_page
は再び実行 - 今回POSTブランチが実行され、HttpResponseRedirect
はにユーザーを取ります/ ParentLists/05。これにより、ドロップダウンボックスの下にグレード5に関するHTMLテーブルが表示されます。
問題は、ユーザーが10th Gradeを選択すると、表はグレード10のコンテンツを表示するように更新されますが、表示されるURLはまだ/ParentLists/05です。私はそれが/ParentLists/10であることを望みます。
明らかに、最初の選択の後、main_page
ビューは決して再び実行されません。 foo
のみ... ... HttpResponseRedirect
が呼び出されることはありません。私が探しているものを得るために、これをどのように再構成すべきですか?前もって感謝します!
おかげで、あなたの両方にそんなに。私は今日の午後にそれをもう一度見て、あなたの提案が助けになるかどうかを見てみましょう! –
うまく動作します、ありがとう! –
@PatJonesようこそ! – neverwalkaloner