问题标签 [django-formwizard]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2178 浏览

django - Django 表单向导 - 将请求传递给视图?

有没有办法访问request表单向导的 done() 方法中的变量?

我想访问请求中的用户对象,但我不确定如何将请求传递给 done() 方法?

0 投票
1 回答
1121 浏览

django - FormWizard 和 FileFields (Django 1.4)

我的 FormWizard (Django 1.4) 允许用户来回走动,直到完成向导。向导保留用户填写的所有值并显示它们,以防用户返回到他已经完成的步骤。

这适用于 CharField,但不适用于 FileFields。如果用户在一个包含 FileField 的步骤中提交了一个文件,然后又回到这个步骤,他必须再次上传一个文件。

有没有办法让用户不必重新上传文件?

请注意,表单数据尚未保存到数据库中。

0 投票
0 回答
738 浏览

django - (ab)使用 Django 表单向导来做我的投标——这甚至可能吗?

几天来,我一直一头扎进砖墙上,是时候向比我更聪明、更有经验的人寻求建议了。

背景:作为我的网络应用程序的一部分,我正在构建一个测验应用程序,用户可以在其中回答由多项选择题组成的测验。这些问题都是用户生成的,所以我同时遇到了几个有趣的问题:

a)我必须动态构建测验问题表单(radioselect 小部件)。由于答案选项和问题文本都是用户生成的(模型“问题”和“答案”),我必须在视图中运行查询,然后将变量传递给表单的 init。这样我就可以填充选项并用问题文本覆盖标签:

来自forms.py:

b)这意味着测验问题形式是模型形式(我有一个名为“AnsweredQuestions”的模型,它保存给定答案的实例。还有一个用于测验的模型“TakenQuiz”)。我在用户开始测验时创建了 TakenQuiz 的实例,并在她回答测验问题并保存表单时创建了 AnsweredQuestion 的实例。

来自模型.py

从views.py(测试视图):

c) 一个测验可以由可变数量的测验问题组成,我只设置了一个最大限制。所以几乎一切都是动态的:(

所以这是我的具体问题:

  1. 如果我使用表单向导,如何访问 URL 参数并将它们用于我的查询?(顺便说一句,我讨厌基于类的通用视图)我试图使问题的数量动态化,但还没有弄清楚如何将变量 (len(quiz_questions) 传递给向导...我的网址如下所示,不幸的是,我需要将所有这些都传递给模板上下文或表单的 init:

    来自 urls.py:

  2. 我是否应该费心尝试弯曲表单向导来做我需要的事情?我花了很多时间在谷歌研究和源代码上,我找到了一些问题的潜在解决方案,但不是全部。尤其是不能同时为所有人...

    我可能必须至少覆盖所有这些:

  3. 最后:如果我不能使用表单向导,我应该如何处理测验有什么建议吗?使用 formwizard 对我来说似乎更干净,而不是只为每个测验问题使用视图。该向导的最大优点是在整个测验完成和验证之前,我不必将表单数据保存在某个地方,并且该向导会为我跟踪步骤数和当前步骤。我是一个新手,从头开始编写这种高级的东西并不是很擅长。

非常感谢您的帮助,任何建议或帮助都非常感谢!!

0 投票
2 回答
1179 浏览

django - 在 FormWizard (Django 1.4) 中修改表单字段

考虑以下类:

模型.py:

表格.py:

Form1用于步骤 1 并Form2用于 a 的步骤 2 SessionWizardView

Form2.checkbox_2如果用户在步骤 1 中签入,我如何在步骤 2 中禁用Form2.checkbox_1

我试图通过覆盖get_form()但没有成功来实现这一点:

请注意,我故意没有检查Form2.checkbox_1. 无论如何,我都尝试设置小部件的属性。

0 投票
0 回答
304 浏览

django - 卡在表单向导中的动态表单

几天前我已经在 Django 邮件列表上问过这个问题,但不幸的是没有得到答复。所以我又来了:

在 Django 1.2.3 上,我试图让动态表单工作。在第一页上,用户必须提供他们的地址/客户 ID,在第二页上,客户可以订购餐饮服务。

要在第二页上动态添加表单,我使用 http://code.google.com/p/django-dynamic-formset/

这是我的models.py:

网址.py:

我遇到的问题是,在模板中我只能用{{form}}. 为了让javascript正常工作,我需要单独调用这些字段

当我在没有表单向导的情况下单独测试动态表单(DishesFormset)时,一切正常。

如何在表单向导中调用单独的表单域?

0 投票
4 回答
4855 浏览

django - Django 表单向导 - 每个步骤的自定义表单布局

目前我正在尝试使用 django 表单向导。基本设置现在可以工作了,我可以为显示可变文本的每个步骤调用不同的模板。

现在我想更进一步,为每一步创建一个自定义的表单布局。Django 的文档显示了一种显示表单的通用方式,总是垂直对齐。

在我的实验中,我有两个步骤:

  • 第 1 步:电子邮件和密码(仅需要垂直对齐的两个字段)
  • 第 2 步:个人数据:地址、职业、...

因此,对于第 2 步,我想使用与第 1 步完全不同的表单布局:使用字段集、字段水平对齐(例如地址:街道和号码),...

从 django 文档开始,我认为以下可以工作(尚未测试):

但我在这里遇到的问题是我有两个blocks:form_ifform_else调用相同的表单布局。因此,我对表单布局进行了双重维护。

有没有更好的方法来实现我想要实现的目标?

谢谢!

亲切的问候

0 投票
0 回答
1062 浏览

inline-formset - 当使用带有表单向导的内联表单集时,表单集表单验证在哪里?

我正在创建一个示例,以了解有关使用 SessionWizard 使用内联表单集的更多信息。最终,我想集成动态表单集,以便在提交之前通过模板添加和删除单个表单。但是,当第二个表单中缺少数据时,它无法像常规 ModelForm 那样进行验证。

SessionWizard 中是否有需要重写的方法?它是在 Django 中固有地处理的吗?

指导和例子将不胜感激。

模型.py

网址.py

表格.py

向导-form.html

0 投票
1 回答
620 浏览

django - 多页 django 表单 - 滑块还是 FormWizard?

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

我正在评估两个演示选项:

  1. 使用FormWizard在多个页面上显示表单
  2. 将表单呈现在CSS3 滑块等滑块上。

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

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

与在每个页面之后都有迷你表单FormWizard并提交它们相比。对我来说,FormWizards这似乎很复杂,特别是如果用户想要更改任何以前的页面响应。我还需要FileField在我的表单页面上,似乎只在最后一页上FormWizard接受。FileField

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

0 投票
1 回答
1315 浏览

django - Django 1.4 表单向导测试用例

我正在尝试为表单向导视图编写测试django.contrib.formstools.wizard.views.CookieWizardView,但我不确定如何处理在测试用例中编写顺序帖子:

我假设我需要根据第一个响应中的某些内容或与用于会话管理的 cookie 有关的内容更改第二个帖子数据,我只是不确定是什么。

0 投票
1 回答
1310 浏览

django - 带有表单集的 Django 1.4 表单向导

我想在表单向导中使用表单集。

在我的 urls.py 中:

我使用基本视图来查看发布表单的结果:

当表单集有多个条目时,我只能看到一个条目:

我期望:

在文档中找到了这个:

WizardView 支持 ModelForms 和 ModelFormSets。除了 initial_dict 之外,>as_view() 方法采用 instance_dict 参数,该参数应包含 >ModelForm 和 ModelFormSet 的实例。与 initial_dict 类似,这些字典键值应该 > 等于表单列表中的步数。

不幸的是,我不确定这里是什么意思。