Python 在整个过程完成之前,是否使用FormWizard并在其间保存表单数据?

Python 在整个过程完成之前,是否使用FormWizard并在其间保存表单数据?,python,django,Python,Django,我正在使用FormWizard在我的应用程序中完成一组操作,我有两个模型Employee和Person,Employee类继承Person,Person的所有字段都可用于Employee对象 现在我正在使用FormWizard创建一组表单,我只是想知道这一点。如果用户开始在表单中输入数据,并在4张表单中填写多达2张表单,并且愿意随后填写其余表单。那么,他填写的两份表格的数据是否可以保存在数据库中呢。 下次他来的时候可以从第三张表格上完成手术 如果有人知道这一点,请帮助我,这将是一个巨大的帮助。谢

我正在使用FormWizard在我的应用程序中完成一组操作,我有两个模型Employee和Person,Employee类继承Person,Person的所有字段都可用于Employee对象

现在我正在使用FormWizard创建一组表单,我只是想知道这一点。如果用户开始在表单中输入数据,并在4张表单中填写多达2张表单,并且愿意随后填写其余表单。那么,他填写的两份表格的数据是否可以保存在数据库中呢。 下次他来的时候可以从第三张表格上完成手术


如果有人知道这一点,请帮助我,这将是一个巨大的帮助。谢谢大家!

您可以做的是,在每个步骤中,将表单状态保存到数据库中的某个序列化对象,并将其交给用户

然后在连接formwizard时,将formwizard视图包装在自定义视图中,该视图检查用户是否保存了表单,如果保存了表单,则反序列化并重定向到相应的步骤

编辑:向导在POST中保存状态。只需要保存postdata

models.py:

class SavedForm(Model):
    user = ForeignKey(User)
    postdata = TextField()
views.py:

import pickle
class MyWizard(FormWizard):
    def done(self, request, form_list):
        SavedForm.objects.get(user=request.user).delete() # clear state!!
        return render_to_response('done.html',)

formwizard = MyWizard([Form1, Form2]) <- class name, not instance name

def formwizard_proxy(request, step):
    if not request.POST: #if first visit, get stored data
        try:
            prev_data = SavedForm.objects.get(user=request.user)
            request.POST = pickle.loads(prev_data.postdata)
        except:
            pass

    else: # otherwise save statet:
        try:
            data = SavedForm.objects.get(user=request.user)
        except:
            data = SavedForm(user=request.user)
        data.postdata=pickle.dumps(request.POST)
        data.save()

    return formwizard(request)
导入pickle
类MyWizard(FormWizard):
def完成(自我、请求、表单列表):
SavedForm.objects.get(user=request.user).delete()#清除状态!!
返回render\u to\u响应('done.html',)

formwizard=MyWizard([Form1,Form2])你能帮我写下过程步骤函数和d视图吗,只要一点代码…………我会感谢你的回答,这很有帮助,但在搜索之后,我在github中找到了一个名为django merlin的应用程序,这是一个比使用form-wizard更好的选择。你应该使用models.BinaryField()对于postdata属性,pickle生成的二进制数据不能直接编码到TextField中