djangoの初心者です。
どなたかご教授頂ければ幸いです。
教えていただきたい事はWEBアプリでの二重送信制御についてです。
ボタンを複数回押してしまうとサーバに重複したデータが送信されてしまうと思うのですが、djangoで作成する場合どのように制御していますでしょうか。
質問1.何かミドルウェアやライブラリ的なものはありますでしょうか。なにか皆様が実装している良い方法などあれば教えていただきたいと思っております。
質問2.次のようなサイトを発見したのですがこれを実装する場合下記の通り実装しないといけないのでしょうか?
(A)submitがあるページを返すdefにはすべてtokenを取得させるコードを追加
(B)submitボタンが押された後に実行されるdefすべてにtokenをチェックさせるコードを追加
※https://qiita.com/hamemi/items/d6cb8e0d60821a7e89aa
質問ばかりで申し訳ありませんがどなたかご教授頂ければ幸いです。
よろしくお願いいたします。
下記の通りに修正しましたが、ボタンを連打すると、複数回インサートが実行されてしまいます。
--追記--
@require_POST @login_required def create_thread(request): if request.method == 'POST': form = ThreadForm(request.POST) if form.is_valid(): thread = form.save(commit=False) thread.user = request.user thread.save() messages.success(request, "投稿が完了しました!") form = ThreadForm() else: form = ThreadForm() return redirect('app:display_threads')
送った後もformに文字が残り、連打したら何回も送れるのを防ぐこと
でいいですか?
あと、views.pyは関数かクラスのどちらでやっていますか?
いつもご返信ありがとうございます。
はい、連打での送信が防げればと思います。
いまは一応関数ベースでやっております。
よろしくお願いします。