u = UserDetails.objects.create(first_name='jake',last_name='sullivan')
u.save()
UserDetails.objects.create()
和u.save()
两者执行相同的save()
功能。有什么不同?使用create()
vs是否有任何额外的检查或好处save()
?
类似问题:
Django文档说的是一样的。这仅仅是更方便,使其在同一行。您也可以save()
在一行上创建一个,但是它会更冗长且可读性更差-很显然,您正在使用create()
方法创建一个新对象。
create(**kwargs)
一种方便的方法,可一步创建对象并将其全部保存。从而:
p = Person.objects.create(first_name="Bruce", last_name="Springsteen")
和:
p = Person(first_name="Bruce", last_name="Springsteen") p.save(force_insert=True)
是等效的。
该
force_insert
参数记录在其他地方,但这仅意味着将始终创建一个新对象。通常,您无需为此担心。但是,如果模型包含您设置的手动主键值,并且该值已经存在于数据库中,create()
则IntegrityError
由于主键必须唯一,因此对的调用将失败。如果使用手动主键,请准备好处理异常。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句