2016-09-16 43 views
0

我正在使用django嚮導進行多表單註冊,最終將會有4或5頁表單。不過,我得到的驗證錯誤可能與表單操作有關,但我不知道如何解決。django表單嚮導,ValidationError:['ManagementForm數據丟失或被篡改'。]

錯誤似乎來自這裏的第282行:https://github.com/django/django-formtools/blob/master/formtools/wizard/views.py 但我不清楚是什麼導致它?

(注意:我使用Django酥脆形式,但可能不相關)

views.py

class SignupWizard(SessionWizardView): 
    def get_template_names(self): 
     return [TEMPLATES[self.steps.current]] 

    def done(self, form_list, **kwargs): 
     for form in form_list: 
      if isinstance(form, SignupForm): 
       user = form.save(self.request) 
       complete_signup(self.request, user, settings.ACCOUNT_EMAIL_VERIFICATION, settings.LOGIN_REDIRECT_URL) 
      else: 
       other_signup_form = form.save(commit=False) 
       user = self.request.user 
       other_signup_form.user = user 
       other_signup_form.save() 
     return HttpResponseRedirect(settings.LOGIN_REDIRECT_URL) 


signup_view = SignupWizard.as_view(SIGNUP_FORMS) 

forms.py

class SignupForm(allauthforms.SignupForm): 

    def __init__(self, *args, **kwargs): 
     super().__init__(*args, **kwargs) 
     self.helper = FormHelper(self) 
     self.helper.label_class = 'sr-only' 
     self.helper.layout = Layout(
      Field('name', placeholder='Your Name'), 
      PrependedText('email', '<i class="fa fa-envelope-o"></i>', placeholder="Your Email", 
          autofocus=""), 
      PrependedText('password1', '<i class="fa fa-key"></i>', placeholder="Enter Password"), 
      Submit('sign_up', 'Sign up', css_class="btn btn-block btn-cta-primary"), 
      ) 

class SignupForm2(forms.Form): 
    first_name = forms.CharField(max_length=30) 
    last_name = forms.CharField(max_length=30) 

模板:

{% block inner %} 
    <h2 class="title text-center">Sign up now</h2> 
    <p class="intro text-center">It only takes 2 minutes.</p> 
    <div class="row"> 
      {% crispy form %}   
    </div> 
{% endblock %} 

回答

3

窗體wizar d要求您在您的模板中的表單標籤管理形式:

{{ wizard.management_form }} 

更多信息,請參見the docs

+0

謝謝阿拉斯代爾,完美的工作,我沒有意識到更多將需要在模板中,感謝您的鏈接。 – Yunti

相關問題