django-userenaサインアップに複数のフォームを設定しようとしています。
だからdjango-docsから私はこのようにそれを行うことができます:
forms.py:
class Form1(forms.Form):
some_field = forms.CharField(max_length=100)
email = forms.EmailField()
class Form2(forms.Form):
some_field_2 = forms.CharField(widget=forms.Textarea)
views.py:
class Wizard(SessionWizardView):
def done(self, form_list, **kwargs):
return render_to_response('done.html', {
'form_data': [form.cleaned_data for form in form_list],
})
urls.py:
(r'^signup/$', Wizard.as_view([Form1, Form2])),
そして、それは「次へ」と「前へ」のボタンで2ページに配置された1つのフォームのようになります。
ただし、userenaコードにはいくつかの違いがあり、次のようになります。
views.py:
if userena_settings.USERENA_WITHOUT_USERNAMES and (signup_form == SignupForm):
signup_form = SignupFormOnlyEmail
form = signup_form()
if request.method == 'POST':
form = signup_form(request.POST, request.FILES)
if form.is_valid():
user = form.save()
# Send the signup complete signal
userena_signals.signup_complete.send(sender=None,
user=user)
if success_url: redirect_to = success_url
else: redirect_to = reverse('userena_signup_complete',
kwargs={'username': user.username})
# A new signed user should logout the old one.
if request.user.is_authenticated():
logout(request)
return redirect(redirect_to)
if not extra_context: extra_context = dict()
extra_context['form'] = form
return ExtraContextTemplateView.as_view(template_name=template_name,
extra_context=extra_context)(request)
urls.py:
url(r'^accounts/signup/$', 'userena.views.signup', {'signup_form': SignupFormExtra}),
ですから、ここでの私の大きな問題は、この2つを統合することですが、何から始めればよいのかさえわかりません。