【发布时间】:2012-09-22 12:55:10
【问题描述】:
我正在使用 SessionWizardView 管理两个表单。例如,当我在最后一步重新加载页面时,我又回到了第一步,必须再次输入所有字段。
这是预期的行为吗?如果是这样,是否有可能回到我重新加载页面之前的步骤?当然,所有字段都应相应填写。
class ManufacturingCalculatorWizard(SessionWizardView):
def get_template_names(self):
TEMPLATES = {
"blueprint": "manufacturing/forms/select_blueprint.haml",
"calculator": "manufacturing/forms/calculator.haml"
}
return [TEMPLATES[self.steps.current]]
def done(self, form_list, **kwargs):
form_data = [form.cleaned_data for form in form_list]
rcontext = RequestContext(self.request, { 'data' : calculate_manufacturing_job(form_data) })
return render_to_response('manufacturing/forms/result.haml', rcontext)
【问题讨论】:
-
reload的时候,你也发布数据吗?
-
浏览器询问我是否要重新发送表单。是的,看来我又要发送帖子数据了。
-
我在我的代码中看不到这种行为。您可能想发布向导视图代码、模板代码。
-
@Rohan 我添加了向导的代码。
-
我有一个怀疑。这是
done方法。我有三个步骤。第一步=表单,第二步=表单,第三步是done方法返回的结果页面。重新加载第一步和第二步有效,但重新加载结果页面出错。所以FormWizardView本身正在工作。现在的问题是:如何重新加载结果页面并基本触发done方法?
标签: django django-forms django-formwizard