首页 > 解决方案 > 将 ModelForm 进度值保存到 Django 中的会话

问题描述

我有用户可以创建(模型)表单的流程。如果表单有效,则保存对象并继续流程,但选择在多个页面中。我需要保持创建对象的当前状态,在它完全有效之前无法保存。我可以做的一件事是始终在 ModelForm 中的这些视图周围传递信息,以确保该用户永远不会丢失数据,但我还想确保,如果他离开流程并返回,他不会丢失数据,他之前已经进入了。

这就是为什么我决定要将所有字段保存到会话中。

编辑:

请不要给我关于如何使用会话的建议,我说的更多的是高级逻辑和架构,而不是具体的实现。

我应该多描述一下我的流程。模型有 3 个字段。

流程不是线性的,因为用户可以从页面的不同部分开始。

有时用户可以转到具有前 2 个字段 + 按钮“浏览”的页面,这会将您带到第三个字段的选择页面。然后在他在那里选择领域后,他回来了。但有时他会先选择该字段,然后进入屏幕,显示剩余的 2 个字段,他需要填写这些字段。

标签: djangodjango-modelsdjango-forms

解决方案


保存在会话中: request.session["variable_name"] = "value" 从会话中获取request.session["variable_name"]。确保你也可以request.session.get("..")同时使用


推荐阅读