2014-09-30 4 views
3

SessionWizardView를 작동시킬 수 없습니다. 마지막 단계를 제출하면 마법사가 첫 번째 단계로 돌아가서 done 메서드를 실행하지 않습니다.Django SessionWizardView가 done 메소드를 실행하지 않습니다.

views.py

class CvWizardView(CookieWizardView): 
    form_list = [InfoPersonalForm, PresentacionForm] 
    template_name = 'postulantes/cv_wizard.html' 

    def done(self, form_list, **kwargs): 
     return HttpResponseRedirect(reverse('wizard_done')) 

urls.py

url(r'^wizard/$', CvWizardView.as_view() , name="wizard"), 

HTML

{% extends "base.html" %} 
{% load i18n %} 

{% block extra_head %} 
{{ wizard.form.media }} 
{% endblock %} 

{% block content %} 
<p>Step {{ wizard.steps.step1 }} of {{ wizard.steps.count }}</p> 
<form action="" method="post">{% csrf_token %} 
<table> 
{{ wizard.management_form }} 
{% if wizard.form.forms %} 
    {{ wizard.form.management_form }} 
    {% for form in wizard.form.forms %} 
     {{ form }} 
    {% endfor %} 
{% else %} 
    {{ wizard.form }} 
{% endif %} 
</table> 
{% if wizard.steps.prev %} 
<button name="wizard_goto_step" type="submit" value="{{ wizard.steps.first }}">{% trans "first step" %}</button> 
<button name="wizard_goto_step" type="submit" value="{{ wizard.steps.prev }}">{% trans "prev step" %}</button> 
{% endif %} 
<input type="submit" value="{% trans "submit" %}"/> 
</form> 
{% endblock %} 

감사합니다!

+0

'done()'메서드가 호출되지 않았다는 것을 어떻게 알 수 있습니까? 'wizard_done' url이란 무엇입니까? – Rohan

답변

0

직접 html 페이지로 보내보십시오. 당신은 사용자가 원하는 페이지의 이름이 경우 변경 page_i_want_to_send_user.html 그들은 양식이 경우

class CvWizardView(CookieWizardView): 
    form_list = [InfoPersonalForm, PresentacionForm] 
    template_name = 'postulantes/cv_wizard.html' 

    def done(self, form_list, **kwargs): 
      return render_to_response('page_i_want_to_send_user.html', { 
       'form_data': [form.cleaned_data for form in form_list],    
      }) 

page_i_want_to_send_user.html 페이지 템플릿 디렉토리 안에 저장됩니다를 완료 한 후 전송하는

+0

답을위한 탁구. 나는 당신의 해결책을 시도한다. 그러나 그것은 효과가 없다. 양식은 마지막 단계에서 제출 한 후 첫 번째 단계로 다시 점프합니다. (나의 영어를 위해 유감스럽게 생각한다) – Francisco

0

당신은 할 수 있습니다 필드 검증 에러. 당신의 HTML 템플릿 파일에서 줄을 추가 라인 후

{{ wizard.form.non_field_errors }} 
{{ wizard.form.errors }} 

,

{{ wizard.management_form }} 

을보십시오. 완료된 메소드의 실행을 방해하는 유효성 검증 오류가 표시되어야합니다.