Django在表格上保存不完整的进展

dr *_*bob 9 python django django-forms

我有一个django webapp,有多个用户登录并填写表单.

一些用户可能开始填写表单并且缺少验证表单所需的一些所需数据(例如,授权#)(并且在我们开始处理之前).我希望他们能够填写表格,并可以选择保存部分信息(所以另一天他们可以重新登录并完成它)或提交正在进行验证的完整信息.

目前我正在为我使用的所有表单使用ModelForm,并且Model具有确保有效数据的约束(例如,grant#必须是唯一的).但是,我希望他们能够保存这些中间数据,而无需进行任何验证.

我想到的解决方案看起来相当不优雅和un-django-ey:创建一个"保存部分表单"按钮,保存POST字典将其转换为工具架文件并创建一个"SavedPartialForm"模型,将用户连接到保存的部分表单在架子上.这看起来合情合理吗?有没有更好的方法将POST dict直接保存到db?或者是一个附加模块,它可以对表单进行部分保存(这似乎是与webforms相当常见的活动)?

我最关心的是我的方法是我希望最终能够在一些ajax/jquery方法中自动执行这种形式 - 自动保存(比如每10分钟)而不实际按下按钮并发送POST请求(例如,所以用户不是'触发自动保存时重定向到页面外).我对jquery并不熟悉,我想知道是否可以这样做.

And*_*dge 8

Marty Alchin在Pro Django中有一个很好的解决方案.简而言之,您创建了另一个包含表单哈希,表单字段和保存值的模型.恢复时,只需根据它的哈希值加载表单即可.


S.L*_*ott 1

问题是您有多个表单。

部分的。不完整。完全的。准备好了。准备好了。

事实上,您有一个工作流程的每阶段表单。

这完全没有问题。

  1. 找出您在工作流程中的位置。

  2. 填充并呈现下一阶段的表格。

表单可以相互继承,以节省重复的验证方法。