2015-10-04 55 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) 
    
相關問題