我有一个关于从会话填写注册表格的noobie问题。我有3步注册表单,将数据保存到会话。当用户退回时,我正在尝试使用先前的答案填充表单数据。我设法做到了,但现在我遇到问题,当会话是空的。这是有问题的代码:
if request.session['form_data_page_1']:
korisnik = Forma1(initial=request.session['form_data_page_1'])
else:
korisnik = Forma1()
当我这样做时,我一直在/ start / dadilja / 1 /' - ' form_data_page_1'。我也尝试过这样的事情:
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()
但是当我这样做时,我会看到空白页面上有提交按钮。如何正确地执行此操作,在会话为空时获取空白表单,并在会话存在时使用会话数据填充表单?提前谢谢。
雷纳托
答案 0 :(得分:0)
会话实现字典界面,因此如果找不到密钥,您可以使用.get
返回None。
korisnik = Forma1(initial=request.session.get('form_data_page_1'))
答案 1 :(得分:0)
试试这个
当您尝试使用request.session['form_data_page_1']
从字典中获取密钥并且字典中不存在密钥时,它会为您提供密钥错误。所以首先检查关键是否存在
通过使用request.session.get('form_data_page_1')
,如果密钥不存在则返回无,如果密钥存在则返回值。
if request.session.get('form_data_page_1'):
korisnik = Forma1(initial=request.session['form_data_page_1'])
else:
korisnik = Forma1()
希望这有助于你