2017-06-14 10 views
0

私はDjangoとPythonの初心者です!私は問題を抱えている!PythonでPOST変数を解除(削除)する方法(Django)

私は自分のソフトウェアでセッションシステムを作ります。ユーザーが切断されると(ボタンを使用して)、ユーザーは接続ページにリダイレクトされます。

残念ながら、form.is_valid()はとても自動的にユーザーが再接続されて、まだ有効です。

なぜわからないのですか?フォームやPOSTの値をリセットするにはどうしたらいいですか?

は、

トーマスありがとう

PS:(私のアプリのviews.pyで)接続のビューのコードは次のとおりです。

def connexion(request): 
contact_form = Connect(request.POST or None) 

if contact_form.is_valid(): 
    print(contact_form.cleaned_data["id"]) 
    user_check = uc(contact_form.cleaned_data["id"], contact_form.cleaned_data["pwd"]) 
    if user_check.identity_verified: 
     request.session['usr'] = user_check.get_compact_value() 
     return redirect(home) 
    else: 
     return render(request, 'conn\\connexion.html', {'form': Connect, 'errorId': True}) 
    del user_check 
else: 
    return render(request, 'conn\\connexion.html', {'form': Connect, 'errorId': False}) 

答えて

2

は、あなたがすべき二つのことがありますここで変更してください。

まず、リクエストがPOSTの場合は、フォームの検証のみを行う必要があります。

第2に、同じページに戻っても投稿リクエストの後に常にリダイレクトする必要があります。これにより値がリセットされます。

1

delは返品後であるため、決して実行されません。しかし、あなたはこれをまったくやっていなければなりません。

問題は、フォームの送信が成功した後にリダイレクトする標準のジャンゴパターンに従わなかったためです。

def connexion(request): 

    contact_form = Connect(request.POST or None) 
    if request.method == 'POST': 
     if contact_form.is_valid(): 
      print(contact_form.cleaned_data["id"]) 
      user_check = uc(contact_form.cleaned_data["id"], contact_form.cleaned_data["pwd"]) 
      if user_check.identity_verified: 
       request.session['usr'] = user_check.get_compact_value() 
       return redirect(home) # redirect ok 
      else: 
       return redirect('somewhere else') 
    return render(request, 'conn\\connexion.html', {'form': Connect, 'errorId': False}) 
0

yy 私は見つける!私はアヤックスを使用してビューを呼びました(なぜ?私は思いついていませんでした) 今は<a href='...'></a>を使用しています。