2012-09-17 7 views
0

Django의 FormWizard를 여러 단계 양식으로 사용 중이며 마지막 단계 (데이터 저장 후)로 이전에 입력 한 양식 데이터의 요약을 표시하고 싶습니다.Django FormWizard - 수행 완료시 요약 표시

나는이 같은 일() 메소드를 오버라이드하여이 작업을 수행 할 수 있습니다 :

def done(self, form_list, **kwargs): 
    info = self.save_info(form_list[0]) 
    extra = self.save_extra(info, form_list[1]) 
    # how to provide context for redirect? 
    # return redirect('confirmation.html') 
    # this works, but uses POST 
    return render_to_response(
     'confirmation.html', 
     {'form_list': [form.cleaned_data for form in form_list]}, 
     context_instance=RequestContext(self.request) 
    ) 

대신 POST를 통해 확인을 호출하는 나는 리디렉션 (브라우저 뒤로 가기 버튼)를 사용하고 싶습니다. 그러나 리디렉션은 컨텍스트를 취하지 않으므로 form/list를보기/템플릿에 전달하는 방법을 모르겠습니다. 이 작업을 수행하기위한 깔끔한 표준 방법이 있다면 어떤 아이디어입니까?

참고 : 데이터는 익명 사용자가 입력합니다. 따라서 저장된 데이터와 사용자는 연관되어 있지 않습니다.

답변

1

또한 세션에서 formdata를 저장하고 confirmation.html 뷰를 호출 할 때 해당 정보를 검색 할 수 있습니다.

이것을 사용하는 경우 세션에 대해 SESSION_EXPIRE_AT_BROWSER_CLOSE = True 또는 만료 시간을 설정하는 것이 좋습니다.

+0

예, 그렇습니다. 세션을 사용하여 끝났지 만 하나의 조회 키를 추가하는 것만으로 충분했습니다. 감사합니다. 세션의 만료 시간을 염두에 두겠습니다. – mzu

0

나는 이렇게 할 수 있다고 생각합니다.

def done(self, form_list, **kwargs): 
    info = self.save_info(form_list[0]) 
    extra = self.save_extra(info, form_list[1]) 
    # how to provide context for redirect? 
    # return redirect('confirmation.html') 
    # this works, but uses POST 
    form_list=[form.cleaned_data for form in form_list] 

    return HttpResponseRedirect("/url/"+form_list) 
+0

답장을 보내 주셔서 감사합니다. 세션에 키를 추가 한 다음 리디렉션 (confirmation_view)을 수행했습니다. confirmation_view에서 세션 키를 통해 필요한 데이터를 조회 할 수있었습니다. – mzu