FormWizard单击Chrome上的后退按钮完成()步骤
问题描述:
正如在主题中,当我点击Chrome的后退按钮(在最后一步之后),表单向导时,它将问题重定向到第一步,但按预期它也会显示此第一步表单的验证错误。这是典型的行为吗?FormWizard单击Chrome上的后退按钮完成()步骤
答
done()
页面在验证完所有定义的表单后呈现。因此,当您单击回到最后一个表单时,但由于表单数据内容已清除,表单向导会为第一个表单引发验证错误。
你可以在这里看到存储是如何清除: https://github.com/django/django/blob/1.4.5/django/contrib/formtools/wizard/views.py#L328
你需要记住 - 做视图清除数据等你想使用此视图形式的数据保存到数据库和重定向(防止重装)。你不应该用它来渲染另一个页面。
这就是有用的知识,我用重定向到done()中的其他视图。但是现在当我点击回去时,它会将我重定向到包含所有数据的最后一步(其中包含所有步骤的摘要),即使我在done()方法中执行self.storage.reset(),然后如果我单击让我们说“提交“,它将我重定向到第一步,没有任何数据和验证错误 – mdargacz
@ user2466146你可以在github或某处提供代码,这样我可以看看吗?,看起来像是我从未遇到过的奇怪行为。 – mariodev