【发布时间】:2010-11-17 19:04:10
【问题描述】:
我正在尝试使用 FormWizard 创建一个简单的 Django 多页表单。表单应该做的事情如下:
- 让访问者在表单中输入名字和姓氏。
- 继续下一个页面,将显示之前输入的名字和姓氏,此页面上还会有一个字段让访问者输入消息。
- 访问者将被带到 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 %}
如果我对我想要实现的目标有些不清楚,我深表歉意,我希望等待有人提供解决方案。提前致谢。
【问题讨论】:
标签: django django-templates django-forms