繁体   English   中英

django:从构造函数或模型形式创建对象

[英]django: create object from constructor or model form

从基于模型的模型表单获取数据后,说

form_data = MyModelForm(request.POST)

然后我可以通过创建一个Model的实例

instance = Model(**form_data.cleaned_data)

或通过

instance = form_data.save()

我想知道在django世界中哪一种是首选方式

两者之间存在显着差异。

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()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM