我需要将表单保存功能与表单确认分开。我希望用户可以在不首先验证其内容的情况下保存表单,但是当表单完成后,用户应该单击确认按钮,这意味着数据验证并将其保存到数据库。
当我尝试使用commit=False
参数保存它时会引发错误:
The Table could not be created because the data didn't validate.
更新: 我所做的是删除模型中的验证并使用验证创建不同的函数,验证在用户完成表单时执行。所以我不用Django术语验证这个表单。
但如果有人得到不同的解决方案,请回答。
答案 0 :(得分:0)
,您需要指定不需要所有字段,将 required = False 传递给Field构造函数:
示例:
first_name = forms.CharField(max_length = 150,required = False)
答案 1 :(得分:0)
我有同样的问题。我最终得到的解决方案是使用两个表:
is_confirmed
)如果您的数据库支持JSON数据类型(例如MySQL 5.7+),那么您只能坚持使用以前的表。
我认为这更好,因为验证不仅仅是必需的字段。想象一下用户在date
字段中输入的无效日期。如果您在未经验证的情况下保存它,它将作为NULL
(或0000-00-00
)保存到数据库。因此,原始无效值将丢失。