Django模型管理器objects.create文档在哪里?

Sam*_*nga 82 python django

我总是读到我应该使用的

model = Model(a=5, b=6)
model.save()
Run Code Online (Sandbox Code Playgroud)

但我刚看到有一个管理器功能创建,因为我看到了一个使用它的opensource django应用程序.

model = Model.objects.create(a=5, b=6)
print model.pk
1
Run Code Online (Sandbox Code Playgroud)

所以建议使用它吗?或者仍然优选使用.save方法.我猜测objects.create无论如何都会尝试创建它,而如果指定了pk,save可以保存现有对象.

这些是我找到的文档:https://docs.djangoproject.com/en/dev/topics/db/queries/#creating-objects

suh*_*lvs 42

p = Person.objects.create(first_name="Bruce", last_name="Springsteen")
Run Code Online (Sandbox Code Playgroud)

相当于:

p = Person(first_name="Bruce", last_name="Springsteen") 
p.save(force_insert=True)
Run Code Online (Sandbox Code Playgroud)

force_insert意味着将始终创建新对象.
通常你不需要担心这个.但是,如果您的模型包含您设置的手动主键值,并且该值已存在于数据库中,则对create()的调用将因IntegrityError而失败,因为主键必须是唯一的.如果您使用手动主键,请准备好处理异常.


Dan*_*man 34

它位于"QuerySet API参考"页面中,从文档索引链接.