问题描述
我有一个4页的表单,在第3个表单中,我正在选择要上传的图像.我在会话中存储前3个表单的内容.提交第四份表格后,我正在从会话变量中收集所需的数据并将其保存在数据库中.提交第4种形式后,我如何销毁django中的会话变量,因为当我填写新的4页形式时,我获得了第3种形式的先前上传的图像.
I've a 4-page form, where in 3rd form i'm selecting an image for upload. I'm storing the contents of first 3 forms in session. after 4th form is submitted, i'm collecting the required data from session variables and saving them in database.How do i destroy the session variables in django after 4th form is submitted because when i'm filling a new 4-page form, i get the previously uploaded image in 3rd form.
在Django中是否有更好的方法来执行多页表单?
Is there any better way to execute multi-page forms in django?
推荐答案
您需要调用 del request.session ['key']
从会话中删除数据.所以尝试这样:
You need to call del request.session['key']
to delete data from session. So try like this:
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()
,但它将删除所有会话数据.
Or you can use flush()
, but it will delete all session data.
可以在 文档
.
这篇关于在Django中提交多页表单后清除会话数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!