2015-10-04 57 views
0

如何保存和检索到数据库的Django表单状态?Django如何保存和检索数据库中的调查状态

用户正在填写一项冗长的调查,并希望将调查状态保存在两者之间。

我的想法是:

选项1.保存request.POST数据库(不工作),然后输入:

SurveyForm(my_saved_form_state or request.POST) 

选项2.保存cleaned_data数据库(没有工作)和那么:

SurveyForm(my_saved_form_state or request.POST or None) 

但clean_data没有实例化表单!只有完整的request.POST(一个QueryDict)似乎这样做。如何进行?

+0

可以初始化一形式数据与SurveyForm(初始= {} )其中initial是一个包含你的值的字典。 – cdvv7788

回答

0

于是我终于解决了。

  1. 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() 
    
  2. 从数据库载入它:

    saved_answers = ast.literal_eval(person.saved_answers) # convert unicode string into python object 
        SurveyForm(saved_answers) 
    
相关问题