0
最終的にフォームの4または5ページになる複数フォームのサインアップにはdjangoウィザードを使用しています。しかし、何らかの形でフォームアクションに関連する可能性のある検証エラーが出てきています。これは解決方法がわかりません。djangoフォームウィザード、ValidationError:['ManagementFormデータがありません、または改ざんされました']
ここでエラーは282行目から生じているようです:https://github.com/django/django-formtools/blob/master/formtools/wizard/views.py しかし、私はそれが原因で何かが判明していませんか?
(私はジャンゴクリスピーフォームを使用していますが、適切ではないかもしれません注意してください)
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 %}
ありがとうございましたAlasdairは完璧に機能していましたが、テンプレートにもっと必要と思われることはありませんでした。 – Yunti