什么时候使用save(commit=False)方法,save_m2m方法以及如何使用是Django表单forms进阶必需了解的知识。我们今天就带你来看一看。
何时使用save(commit=False)方法
Stackoverflow上其实已经有了一段非常精炼的答案。英文原文如下,我把它翻译了一下:
That's useful when you get most of your model data from a form, but need to populate some null=False
fields with non-form data. Saving with commit=False gets you a model object, then you can add your extra data and save it.
当你通过表单获取你的模型数据,但是需要给模型里null=False字段添加一些非表单的数据,该方法会非常有用。如果你指定commit=False,那么save方法不会理解将表单数据存储到数据库,而是给你返回一个当前对象。这时你可以添加表单以外的额外数据,再一起存储。
save(commit=False)方法实际应用案例
下面我们来看一个实际应用案例。我们创建了一个叫文章Article的模型,里面包含title, body和作者author等多个字段,其中author字段非空null=False。我