Django(Python)で投稿サイトを作成しています。
ユーザーが投稿するにあたって、下記のようにしたいと思います。
①ユーザーが入力フォームに入力する。
②プレビュー画面に入力内容が表示され、それで良ければ、「投稿」ボタンを押す。
③投稿内容がデータベースに反映される。
現在、下記のように、views.pyを書いています。
python
1# views.py 2 3# 投稿確認画面(プレビュー)を表示 4def confirm(request): 5 if request.method == "POST": 6 form = ExampleForm(request.POST) 7 if form.is_valid(): 8 test = form.cleaned_data['test'] 9 postdata = form.save(commit=False) 10 context = { 11 'test': test, 12 } 13 return render( 14 request, 15 "test/preview.html", 16 context=context 17 )
これにより、①でユーザーが入力されたデータは、preview.htmlにレンダリングされて投稿確認画面(プレビュー画面)は表示されます。
しかし、このプレビュー画面で「投稿」ボタンを押したら、データベースにそれが反映されるようにするにはどうしたら良いでしょうか。
一つ考えたのが、下記のように、preview.htmlにおいても、隠したフォームを設置しておいて、投稿ボタンを押すとそのデータが飛ぶというものです。
html
1<!--preview.html--> 2下記の内容で投稿してよろしいですか? 3投稿内容:{{test}} 4<form method="POST" action=""> 5 <input type="hidden" name="test" value="{{test}}"> 6 <input type="submit" value="投稿"> 7</form>
しかし、もっとスマートな方法があるのではないかと思いました。
一般的にこのような投稿確認画面(プレビュー画面)は、どのように実装するものでしょうか。
ご存じの方、ご教示頂ければ幸いです。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/03/19 15:38