在不知道它是否已经存在的情况下,在Django 2.0中创建数据库记录的最有效方法是什么?

时间:2018-07-19 22:31:48

标签: django django-models

这种情况是必须填充一个DB,但是未知记录是否已经存在。主键是一个递增的值。 我考虑了三种技术来完成此任务,但想知道哪种方法最有效。

1。

Model.objects.get_or_create()

2。

Model.objects.update_or_create()

3。

if not Model.objects.filter().exists():
    Model.objects.create()

根据Django文档,技术1和2在内部使用EAFP(比许可更容易请求宽恕),而技术3使用不太受欢迎的LBYL(飞跃前请先看)。但是,技术3避免检索或保存(未经修改)该对象(如果已存在)。分配的代价是否足以避免这种情况,还是查找成本超过了其余操作?

跟进:在大多数现有记录相对于大多数不存在记录的情况下,正确的方法会改变吗?

0 个答案:

没有答案