保存不完整的Django表单

保存不完整的Django表单,django,forms,Django,Forms,我有一个相当长的表单,用户不可能总是一次性完成。我希望用户能够点击一个按钮,保存表单,以便稍后完成。我的第一个想法是简单地保存表单,并以某种方式将其标记为不完整。然而,我似乎无法回避这样一个事实:不完整的表单是无效的,不能强制保存。例如,如果表单末尾附近的必填字段为空,则即使跳过表单,也无法将表单保存到数据库中。is_valid()步骤 是否有其他临时保存表单数据的方法?另外,我知道以前有人问过这个问题,但我担心这个答案没有多大帮助: 更新 谢谢大家到目前为止的回复。下面的一些答案让我意识到我在

我有一个相当长的表单,用户不可能总是一次性完成。我希望用户能够点击一个按钮,保存表单,以便稍后完成。我的第一个想法是简单地保存表单,并以某种方式将其标记为不完整。然而,我似乎无法回避这样一个事实:不完整的表单是无效的,不能强制保存。例如,如果表单末尾附近的必填字段为空,则即使跳过表单,也无法将表单保存到数据库中。is_valid()步骤

是否有其他临时保存表单数据的方法?另外,我知道以前有人问过这个问题,但我担心这个答案没有多大帮助:

更新
谢谢大家到目前为止的回复。下面的一些答案让我意识到我在原来的问题中遗漏了一个细节。我需要能够让用户在返回时选择是否完成表单。用户每天多次在此表单中输入信息。他们可能会返回表格,但尚未准备好完成表格项目A,而是需要从头填写表格项目B。因此,仅仅用最后一个不完整的表单自动填充表单并不能完全奏效。很抱歉,当我发布原始问题时,我没有想到这一点。

如果您使用,您可以将长屁股表单拆分为许多较小的表单,之前的每个表单都将保存在用户会话中,等待他们返回。如果他们离开并通过向导的基本url返回向导,他们将在离开的同一位置恢复。

基于词典的方法没有多大帮助,怎么办?关于这种方法,有什么你想更好地理解的吗?对前面问题的回答非常清楚。按照选择答案中的图书链接了解更多细节。你是指海报的原始想法,即创建一个该领域的词典及其价值?海报听起来对这个想法不太感兴趣,没有人插嘴说:“不,那会有用的。”我得到了制作字典的角色,但我想我不知道该把字典放在哪里。您是以某种方式将其写入数据库,还是将其作为搁置文件写入目录,稍后再读取?如果我知道一个长期保存字典的好方法,我当然可以试一试。有几种方法可以实现持久性:数据库、cookie、redis等。你可以序列化表单(可能是json?)并将其保存到会话中,当用户返回时再次填充表单。