首页 > 解决方案 > 有没有办法通过单击按钮将 Django 表单字段上的空白属性更改为 False?

问题描述

我正在构建一个评论表单,该表单将发布到我的数据库中的单个模型。此表格将有多个部分,每个部分都有自己的一组问题。我希望用户能够完成一个部分并点击一个提交按钮,该按钮将保存进度并将它们重定向到下一个部分。本质上,我想为审核创建一个进行中状态,其想法是,当所有部分都完成时,用户可以点击一个完整的按钮,该按钮将在整个表单上运行我的验证。但是,我不想允许将信息发布到尚未清理的数据库中。

我一直在思考这个问题,试图弄清楚我需要做什么,并相信最好的办法是在最后一页上有一个完整的按钮,将表单字段的空白更改为 False。我相信这将允许我填写每个表单并将其发布到数据库,因为所有字段都将作为可选字段开始,但是对于该特定模型实例,最后单击按钮将进行更改,使所有字段都需要,从而运行验证器以确保表单完整。我相信这也将允许保存进度并在完成表格期间中断时返回。

任何人都可以就这是否可能提供任何见解?如果是这样,有没有人可以指导我的例子?

标签: djangoformsdjango-models

解决方案


您可以将未经验证的数据存储到用户的会话中。最后阶段将所有先前的步骤数据从会话中提取出来以进行验证。IIRC Django 表单向导就是这样做的,所以您不必编写它。

我可能会改为在客户端执行此操作,使用一个大(可能是 Crispy)表单,以及一些客户端伪提交按钮,这些按钮仅调用 Javascript 来隐藏大表单的一部分并显示下一部分。最后一个是真正的提交,如果有错误会重新显示整个事情。


推荐阅读