2017-10-11 30 views
0

セッションから登録フォームを記入することについてのnoobie質問があります。セッションにデータを保存する3段階の登録フォームがあります。ユーザーが元に戻ったときに以前の回答をフォームデータに入力しようとしています。私はそれをすることができましたが、今はセッションが空のときに問題があります。 'form_data_page_1' - 私は '/スタート/ dadilja/1 /でKeyError例外' を得続けることを行うときDjango - セッションが存在しない場合に空白のフォームを残す

if request.session['form_data_page_1']: 
     korisnik = Forma1(initial=request.session['form_data_page_1']) 
    else: 
     korisnik = Forma1() 

:ここに問題のあるコードです。このような

if request.session['form_data_page_1'] is not Null: 
     korisnik = Forma1(initial=request.session['form_data_page_1']) 
    else: 
     korisnik = Forma1() 

と何か:私はまた、このような何かしようとした

try: 
    korisnik = Forma1(initial=request.session['form_data_page_1']) 
except: 
    korisnik = Forma1() 

をしかし、私はそれを行うとき、私はそれにボタンを提出すると、空白のページが表示されます。セッションが空のときに空白のフォームを取得し、セッションが存在するときにセッションデータを入力する方法前もって感謝します。あなたは鍵が見つからない場合はNoneを返し.getを使用できるように

レナート

答えて

0

あなたがrequest.session['form_data_page_1']を使用して辞書からキーを取得しようとキーが辞書に存在しない場合、それはあなたに重要なエラーが発生します。この

を試してみてください。したがって、最初にキーが存在するかどうかを確認する request.session.get('form_data_page_1')を使用して返します。キーが存在しない場合はNone、キーが存在する場合は値を返します。

if request.session.get('form_data_page_1'): 
    korisnik = Forma1(initial=request.session['form_data_page_1']) 
else: 
    korisnik = Forma1() 

これは希望はあなた

+0

ありがとう役立ちます。今私はフォームとボタンを送信するだけでなくページを取得します。私はなぜそれが動作しないのか分からない。 –

+0

あなたの 'Forma1()'は何を返すのですか?それが空白のフォームを返すと、テンプレートはフォームを取得せず、空白になります。 –

+0

問題は私のhtmlテンプレートにありました。ありがとう! –

0

セッションは、辞書インタフェースを実装します。

korisnik = Forma1(initial=request.session.get('form_data_page_1')) 
関連する問題