1

question.htmlユーザーがコメントを通じて質問に回答できるテンプレートがあります。/question/10成功すると、元の質問ページ (または同様のもの)にリダイレクトされます。

ここにあるフォームに基づいて、コメントを処理するビューは次のようになります。

def comment(request):
    if request.method == 'POST': 
        form = CommentForm(request.POST) 
        if form.is_valid(): 
            # save, process, etc..
            # ...
            return HttpResponseRedirect(request.META['HTTP_REFERER']) 
    else:
        form = CommentForm()
    return render(request, 'question.html', {'form': form})

question/10質問:フォーム内の情報を失うことなく、この最後のレンダリングで同じ が表示されるようにするにはどうすればよいですか? question代わりにビューでフォームの検証を処理する必要がありますか?

編集: わかりました、与えられた回答に基づいて、私は質問を十分に指定していないと思います: シナリオはDetailView、オブジェクトのQuestionがあり、これにレンダリングされたコメントフォームを使用して、人々がその特定のオブジェクトにコメントできるようにしたいです同じビュー。私が見つけようとしているのは、ページがフォームビューではなく DetailView によってレンダリングされることを考えると、フォームからの投稿を処理する場所です。

  • 複数の DetailView があります
  • 各ビューはコメントフォームを使用します
  • フォームが有効な場合、元のページにリダイレクトします (ThiefMaster が提案したように、非表示フィールドの URL?)
  • それ以外の場合は、コンテキスト内のフォームで元のページをレンダリングします。
4

2 に答える 2