如何将django表单状态保存并检索到数据库?
用户正在进行冗长的调查,并希望在两者之间保存调查状态。
我的想法是:
选项1.将request.POST保存到数据库(不工作),然后:
SurveyForm(my_saved_form_state or request.POST)
选项2.将cleaning_data保存到数据库(确实有效),然后:
SurveyForm(my_saved_form_state or request.POST or None)
但cleaning_data没有实例化表单!只有完整的request.POST(一个QueryDict)似乎这样做。怎么办?
答案 0 :(得分:0)
所以我终于解决了。
将POST数据保存到数据库:
postdata = {}
for key in request.POST.iterkeys():
if len(request.POST.getlist(key)) > 1:
postdata[key] = request.POST.getlist(key) # for checkboxes
else:
postdata[key] = request.POST.get(key, u'') # for all others
person.saved_answers = postdata
person.save()
从数据库加载:
saved_answers = ast.literal_eval(person.saved_answers) # convert unicode string into python object
SurveyForm(saved_answers)