【发布时间】:2020-01-15 06:30:51
【问题描述】:
我有一个 4 页的表单,在第 3 个表单中,我选择了要上传的图像。我将前 3 个表单的内容存储在会话中。提交第 4 个表单后,我正在从会话变量中收集所需的数据并将它们保存在数据库中。 提交第 4 个表单后,我如何销毁 django 中的会话变量,因为当我填写新的 4 页表单时,我会以第 3 个表单获取先前上传的图像。
有没有更好的方法在django中执行多页表单?
【问题讨论】:
我有一个 4 页的表单,在第 3 个表单中,我选择了要上传的图像。我将前 3 个表单的内容存储在会话中。提交第 4 个表单后,我正在从会话变量中收集所需的数据并将它们保存在数据库中。 提交第 4 个表单后,我如何销毁 django 中的会话变量,因为当我填写新的 4 页表单时,我会以第 3 个表单获取先前上传的图像。
有没有更好的方法在django中执行多页表单?
【问题讨论】:
您需要调用del request.session['key'] 从会话中删除数据。所以试试这样:
def fourth_form_submission(request):
form = FourthForm(request.POST)
if form.is_valid():
data = form.cleaned_data
# save data to DB from session
try:
del request.session['form_1_data']
del request.session['form_2_data']
del request.session['form_3_data']
except KeyError:
pass
return HttpResponse("Data has been saved.")
或者你可以使用flush(),但它会删除所有会话数据。
更多信息可以在documentation找到。
【讨论】: