Я пытаюсь создать простую многостраничную форму Django, используя FormWizard. Форма должна делать следующее:
- Позвольте посетителю ввести имя и фамилию в форме.
- Перейдите на следующую страницу, где будут отображаться введенные ранее имя и фамилия, на этой странице также будет поле, позволяющее посетителю ввести сообщение.
- Посетитель перейдет на страницу Django done.html, где будет храниться и отображаться вся информация.
На шаге 2 у меня возникают проблемы с выяснением того, как отображать информацию, введенную посетителем на шаге 1. Я публикую код для форм и два шаблона, используемые для шага 1 и 2 ниже:
forms.py
from django import forms
from django.shortcuts import render_to_response
from django.contrib.formtools.wizard import FormWizard
class ContactWizard(FormWizard):
def done(self, request, form_list):
return render_to_response('done.html', {
'form_data': [form.cleaned_data for form in form_list],
})
def get_template(self, step):
return 'buydomain/templates/reg%s.html' % step
class Form1(forms.Form):
firstName = forms.CharField()
lastName = forms.CharField()
class Form2(forms.Form):
message = forms.CharField(widget=forms.Textarea)
шаблон для шага 1:
{% block content %}
<p>Step {{ step }} of {{ step_count }}</p>
<form action="." method="post">
<table>
{{ form }}
</table>
<input type="hidden" name="{{ step_field }}" value="{{ step0 }}" />
{{ previous_fields|safe }}
<input type="submit">
</form>
{% endblock %}
шаблон для шага 2:
{% block content %}
<p>Step {{ step }} of {{ step_count }}</p>
{% comment %}
Show values entered into Form1 here !
{% endcomment %}
<form action="." method="post">
<table>
{{ form }}
</table>
<input type="hidden" name="{{ step_field }}" value="{{ step0 }}" />
{{ previous_fields|safe }}
<input type="submit">
</form>
{% endblock %}
Я прошу прощения, если мне немного неясно, чего я хочу достичь, и я надеюсь, что кто-то предложит решение. Заранее спасибо.