0
私はDjango 1.9を使用していますDjangoは複数のサブミットを防止します
私は送信ボタンで複数回クリックするユーザの保護を作成しようとしています。
私はフォームの一意のトークンを作成しました。フォームを送信すると、デコレータチェックで同じトークンを持つセッション変数がありますか。理論的には、実際にはうまくいきません。私がクリックした場合の10倍はここの周りに5-6新しいエントリ
を取得するコード
マイビューです:
@form_token_check
def new(request, **kwargs):
if request.method == "POST" and kwargs['form_token']:
====write to DB=====
私のデコレータ:
def form_token_check(func):
def inner(request, *args, **kwargs):
kwargs['form_token'] = False
if request.method == "POST":
new_form_token = request.POST.get('form-token', '')
if 'form-token' in request.session:
old_form_token = request.session['form-token']
if new_form_token != old_form_token:
kwargs['form_token'] = True
request.session['form-token'] = new_form_token
else:
kwargs['form_token'] = True
request.session['mlvr-form-token'] = new_form_token
return func(request, *args, **kwargs)
return inner
私はサーバー側の保護をしたいと思います – user43506