django - 有没有办法通过单击按钮将 Django 表单字段上的空白属性更改为 False?
问题描述
我正在构建一个评论表单,该表单将发布到我的数据库中的单个模型。此表格将有多个部分,每个部分都有自己的一组问题。我希望用户能够完成一个部分并点击一个提交按钮,该按钮将保存进度并将它们重定向到下一个部分。本质上,我想为审核创建一个进行中状态,其想法是,当所有部分都完成时,用户可以点击一个完整的按钮,该按钮将在整个表单上运行我的验证。但是,我不想允许将信息发布到尚未清理的数据库中。
我一直在思考这个问题,试图弄清楚我需要做什么,并相信最好的办法是在最后一页上有一个完整的按钮,将表单字段的空白更改为 False。我相信这将允许我填写每个表单并将其发布到数据库,因为所有字段都将作为可选字段开始,但是对于该特定模型实例,最后单击按钮将进行更改,使所有字段都需要,从而运行验证器以确保表单完整。我相信这也将允许保存进度并在完成表格期间中断时返回。
任何人都可以就这是否可能提供任何见解?如果是这样,有没有人可以指导我的例子?
解决方案
您可以将未经验证的数据存储到用户的会话中。最后阶段将所有先前的步骤数据从会话中提取出来以进行验证。IIRC Django 表单向导就是这样做的,所以您不必编写它。
我可能会改为在客户端执行此操作,使用一个大(可能是 Crispy)表单,以及一些客户端伪提交按钮,这些按钮仅调用 Javascript 来隐藏大表单的一部分并显示下一部分。最后一个是真正的提交,如果有错误会重新显示整个事情。
推荐阅读
- mono - Mono 与 yocto 的集成
- python - 使用ThreadPoolExecutor时如何保持原来的输入顺序?
- c++ - 在 while 循环结束时获取数字 -172492288 的窗口中的错误
- html - HTML - 按前缀对齐
- reactjs - 如何控制checkBox的checked props?
- windows - 我们如何在 powershell 中实现 %*?
- android - 由于错误,Android 虚拟设备未启动。(以下截图)
- magento - 如何为数组输出编写模式和 Graphql?
- android-jetpack-compose-list - 当 LiveData 中的数据更新时,LazyColumn 不更新
- javascript - TypeError:发现不可调用(使用 multer 上传文件)-Node.JS