问题标签 [django-formtools]

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 回答
97 浏览

django - Django formtools SessionWizardView在验证错误时重新填充表单

我有一个django-formtools SessionWizardView向导,在输入所有数据时可以正常工作。但是,我在表单的每个步骤中都进行了表单验证,如果代表了一个步骤,我无法在某些情况下重新显示输入的数据。

这是一个简单的例子。description未输入必填字段已输入字段plan。报告验证错误并重新显示表单。

我正在模板中创建计划复选框,如下所示。

我希望{% if wizard.form.plan.value == plan.pk %}checked{% endif %}True一个实例中,因此checked。它不是,我不明白为什么不。

如果我这样做{{ wizard.form.plan.value }},显示的结果看起来{{ plan.pk }}

0 投票
0 回答
64 浏览

django - 动态更新 form_list 以指向某个步骤的某个子类(仅在运行时已知),并呈现该表单

我有一个场景,其中用于步骤的表单仅在运行时已知。目前,form_list对于每个step. 但是在更新的需求中,每个step都有一些运行时逻辑来确定对应的form_class. 我正在考虑一种form_list动态更新的方法。

我尝试覆盖 get_form_list,它使用运行时逻辑来确定表单,并相应地修改 form_list。

网址.py

向导

Form_list 正在正确更新,但未根据新的表单列表呈现表单。渲染的表单仅从旧的静态 form_list 中获取。

0 投票
0 回答
1021 浏览

django - django-formtools,在表单步骤之间保存数据

我正在尝试使用django-formtools创建一个多步骤表单向导。我有一个名为的主模型Report和几个 ModelForms,如下所示:

在我看来,我创建了以下视图:

类 ReportWizardView(SessionWizardView): template_name = 'reporting/report_create2.html' form_list = [ReportFormP1, ReportFormP2]

我的相关模板如下所示:

我的 urls.py 如下所示:

我的问题是当我点击时表单步骤没有被保存next,然后previous(表单有效)。贝娄是一个例子

加载的第一个表单:

8e66r.png

点击“下一步”后:

8eQnO.png

现在,当我单击“上一个”时,一切都消失了:

8eMqq.png

我想知道我错过了什么?

0 投票
1 回答
468 浏览

django - 将 user.id 传递给 Django 表单工具中的 FormWizardView 类

我正在尝试在 django2.2 中创建一个多步骤表单。显然,原生 FormWizard 在以前的 django 版本中已被弃用,所以我遇到的唯一解决方案是django-formtools。我有两个模型为 FormWizard 提供必填字段。我已经能够成功地从表单中制作用户输入字典。我打算将此数据保存到其中一个模型中。但是,该模型需要一个 user.id 字段,因为它是 CustomUser 对象的外键,因此不能为空。我相信有一种方法可以将此 user.id 添加到数据字典中,然后将整个字典保存为我的目标模型中的实例。这是我一直在挣扎的地方。

我尝试调用 user=request.user 但出现错误,提示“未定义请求”,因为这是基于类的视图(我想这就是原因)。

我的模特

我的表格

我的观点

我需要将 user.id 传递给 FormWizardView 以便我可以将其附加到 data_dict 以便我可以成功地将 dict 作为实例保存在我的数据库中。到目前为止,我在兜圈子。任何帮助将不胜感激。有人请至少指出我正确的方向

0 投票
1 回答
241 浏览

django - 如何在 Django 中的多步表单向导中创建一个选择按钮,以呈现输出而不进行下一步?

我是 Django 新手,我正在使用django-formtools. 问题是,在我的第 2 步表单中,我需要在后端传递选择字段以执行一些计算,然后呈现输出。用户可以根据输出随时进行更改。如果用户决定完成选定的更改,我制作了一个apply changes应该触发后端进程的按钮和一个按钮。proceed to next step但是,当我单击apply changes按钮时,它会引导我进入下一步。

这是我的HTML代码:

这是我的SessionWizardView方法代码片段:

我需要有关如何正确完成的帮助。提前致谢!

0 投票
1 回答
252 浏览

django - Django formtools如何在注销/登录周期之间存储表单数据

我正在使用 django-formtools 将长表格分成几部分。这工作正常。但是,我希望用户能够开始填写表单,直到我们说第 5 步(共 9 步),然后注销并再次登录,然后从第 5 步开始继续填写表单。

我可以使用 cookie 执行此操作,但是,如果用户 A 开始填写表单然后注销然后用户 B 登录,如果用户 B 选择继续填写表单,则用户 B 可以看到用户 A 的数据。如果用户 A 和 B 使用相同的计算机和 Web 浏览器,就会发生这种情况。当然,这不可能发生。

如果我使用会话而不是 cookie,那么当用户注销时,将无法从第 5 步开始继续填写表单,因为会话已刷新并且数据已删除。所以我想这些会议在这里对我没有帮助。

为了继续从第 5 步开始填写表格,我重写了以下 get 方法django-formtools.WizardView

self.continue_fill设置urls.py为:

所以我的问题是:

1.- 是否可以将 cookie 与 Django 中的单个用户相关联?

2.- 在我的情况下,用户 A 和 B 可以看到他们的数据,因为我在 PC 上使用同一台 PC、相同的 Web 浏览器和相同的登录用户,因为我仍在开发网站。但一般来说,用户 A 在 PC 中使用用户 A 的帐户的 cookie 是否与用户 B 在同一台 PC 中使用用户 B 的帐户以及当然使用相同的 Web 浏览器的 cookie 不同?一般而言,如何在 Web 浏览器中为不同用户分离 cookie?

3.- 是否有可能使用会话进行这项工作(注销/登录继续填充)?

4.- 如果我想允许用户在不同的填写步骤中拥有多个表单实例怎么办?django-formtools 支持这个吗?

5.- 我想我可以创建一个表来临时存储表单中的数据并将行与用户相关联,然后为表单中的每个步骤更新行或覆盖注销方法以确保 cookie/会话数据存储在数据库中。这将允许保存多个用户可以继续编辑的表单,但这是很多工作。有更简单的选择吗?

0 投票
0 回答
42 浏览

django - Django formtools,如何设置wizard_view cookie过期日期?

我正在使用 django formtools 来拆分长表格。我希望用户在注销/登录网站后以及关闭/打开浏览器后能够继续填写表单。但是,formtools 设置的 cookie 的过期日期值为 Session。因此,如果用户关闭浏览器,cookie 将被删除,用户必须从头开始填写表单。

有什么办法可以设置下图中的 cookie Wizard_submissions_wizard_view 让我们说 2019-01-01?

在此处输入图像描述

0 投票
2 回答
293 浏览

django - 如何在表单工具向导的步骤中手动重置数据?

我有一个向导,其中包含以下几个步骤:

其中第 6 步只是对前面步骤中的数据的回顾。第 4 步和第 5 步是互斥的。

如果用户使用 1、2、3、4、6 表格,然后决定使用 5 而不是 4,我希望能够在第 4 步中重置数据。如何手动重置已为第 4 步存储的数据(或任何步骤)的向导?

0 投票
1 回答
330 浏览

django - Django 表单向导 - 如何在多对多字段中保存所选项目

因此,我使用 Django formtools 表单向导将表单分为两个步骤。表单正在工作,正在保存数据,但许多字段项目除外。

用户可以创建一个可以按标签过滤的广告。Tag 模型通过多字段关联到 Ad 模型,但是在保存表单时,选定的标签不会保存在 Ad 模型中。

模型.py

视图.py

所以我想我仍然必须在 AdWizardView 的 done 方法中处理多对多关系。我看到以下问题得到了回答,但解决方案引发了错误......

'odict_values' 对象不支持索引

有谁知道我在这里想念什么?

最诚挚的问候,

编辑:为了澄清起见,标签模型中的对象已经存在,使用表单上的 CheckboxSelectMultiple() 小部件进行了选择。

0 投票
1 回答
407 浏览

python - Django Formtools 动态添加表单集

我正在使用Django Formtools为职位发布流程创建多步骤表单。在其中一种形式中,我有希望用户动态添加的工作问题,例如,如果他们有兴趣添加问题,则生成问题表单的复选框。他们应该有一个按钮来创建尽可能多的问题。现在我的挑战是,当我使用普通模型表单时,我能够完成职位发布过程,但是如果我用模型表单集替换问题表单并将其包含在form_list中,我会遇到关键错误。

其次,如果我在动态添加字段时尝试各种 Javascript 响应,例如这个堆栈溢出响应,我会收到表单验证错误。顺便提一下,问题 Form 使用与其他表单(工作模型)相同的模型,因此我的期望是,无论添加多少问题,它们都将保存到工作模型中。有谁知道该怎么做?在 Django formtools 中动态添加字段并保存到模型中?我的表单工具向导如下所示:

我的模型如下所示: