gpt4 book ai didi

python - django get_or_create - 对象列表的性能优化

转载 作者:行者123 更新时间:2023-12-01 05:09:21 26 4
gpt4 key购买 nike

考虑以下(伪Python)代码:

l = [some, list]
for i in l:
o, c = Model.objects.get_or_create(par1=i["something"], defaults={'par2': i["else"],})

假设大多数时候对象会被检索,而不是创建,

通过第一个 SELECT() 查询不在 par1 定义的集合中的对象,然后批量插入丢失的对象,可以明显提高性能。

但是,是否有一种简洁的 Python/Django 模式可以在不深入 SQL 的情况下实现这一目标?

这是一个批量导入例程,因此 l 包含字典,而不是 django 模型实例。

最佳答案

给定 ID 列表,您可以使用 Django 使用 __in 运算符快速为您提供相应的 Model 实例:https://docs.djangoproject.com/en/dev/ref/models/querysets/#in

photos_exist = Photo.objects.filter(
id__in=photo_ids
)

关于python - django get_or_create - 对象列表的性能优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24502658/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com