多页django表单 - 滑块或FormWizard?

时间:2012-07-02 23:30:48

标签: django css3 django-forms django-formwizard

我有一个很长的表单,我想分成多个页面。

我正在评估两种呈现方式:

  1. 使用FormWizard
  2. 在多个页面上展示表单
  3. CSS3 slider之类的滑块上显示表单。
  4. 滑块实际上只有一页长,使用CSS3来给幻灯片留下印象。它浮动所有内容区域彼此相邻,隐藏溢出,如果我们有5张幻灯片,则将页面width设置为500%,并移动左边距-100%以显示下一张幻灯片。所以它只是一页,但似乎表格正在滑动页面上显示。

    对我而言,滑块方法的优点是只有一个表单,用户只在幻灯片末尾提交表单一次,因此可以来回进行更改。(这是常见的情况) 。

    FormWizard使用迷你表格并在每页后提交。对我而言,FormWizards似乎很复杂,特别是如果用户想要更改以前的任何页面回复。我的表单页面上还需要FileField,似乎FormWizard仅在最后一页上接受FileField

    但是,我还没有看到很多人使用这种滑动形式(CSS3或JScript one)的方法。因此,作为一个新手,我想知道这样做是否存在一些明显的陷阱?

1 个答案:

答案 0 :(得分:1)

我之前只能写FormWizard。根据Django文档的“处理文件”部分,可以在

中找到

https://docs.djangoproject.com/en/dev/ref/contrib/formtools/form-wizard/

FileField可用于FormWizard实施的任何步骤。我发现使用Django的FormWizard非常有帮助的是,它为您提供了Forms的所有标准功能。这意味着您可以轻松地创建和操作表单,验证每个步骤中的字段等。我不知道CSS3滑块如何完成验证,但我想验证应该在客户端进行。

此外,Django的FormWizard使用Cookie存储后端或会话存储后端来存储信息,这使得在步骤之间导航和修改以前存储的数据非常简单。

我希望我帮助你做出决定!当然,我在上面提供的链接中的FormWizard的Django文档中可以找到更多信息。