根据模型从模型表单中获取数据后,请说
form_data = MyModelForm(request.POST)
然后我可以通过
创建Model的实例instance = Model(**form_data.cleaned_data)
或者
instance = form_data.save()
我想知道哪一个是django世界的首选方式
答案 0 :(得分:7)
两者之间存在显着差异。
instance = Model(**form_data.cleaned_data)
不会将对象保存在数据库中。它只创建一个本地实例。
instance = form_data.save()
将对象添加到数据库中(如果支持,则执行提交),并且还具有触发验证的副作用。
如果您想在保存对象之前对对象进行自定义后期处理,请将commit=False
传递给save()
方法。
instance = form_data.save(commit=False)
# do some stuff with instance
instance.save()