то, что вы можете сделать, это каждый шаг, сохранить состояние формы для некоторого сериализованного объекта в db ForeignKeyed для пользователя.
затем при подключении мастера форм обернуть представление мастера форм в пользовательское представление, которое проверяетесли у пользователя есть сохраненная форма и, если это так, десериализуется и перенаправляется на соответствующий шаг.
Редактировать: кажется, что мастер форм сохраняет состояние в POST.нужно только сохранять постданные.
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)
edit: изменен конструктор FormWizard