在Django中提交多页表单后清除会话数据 [英] clear session data after multi-page form submit in Django

查看:83
本文介绍了在Django中提交多页表单后清除会话数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个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.")

或者您可以使用

Or you can use flush(), but it will delete all session data.

可以在 查看全文

登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆